1.IOC入门案例思路分析
- 管什么?管bean(service和dao)
- 如何将被管理的对象告知IOC容器?(配置)
- 被管理的对象交给IOC容器,如何获取到IOC容器?(提供了个接口)
- 如何获取到IOC中的bean?(接口方法)
- 使用spring导入哪些坐标?(pom.xml)
- 案例分析
- 创建好空maven项目
- 创建spring的xml配置管理文件 
  - 先在maven文件中导springframework包(记得刷新)
 <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.10.RELEASE</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies>
- 如图: 插入后在resources文件夹中右键就能找到springConfig文件
  
- 配置Bean 
  - 属性class:用于指示需要造对象的实现类的位置(不要配接口,接口不能造对象)
- 属性id:给bean一个名字,用来在IOC容器中拿创建的对象(id不能重复)
- xml文件如图
 
  <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--1.导入spring的坐标spring-context,对应版本是5.2.10.RELEASE-->
    <!--2.配置bean-->
    <!--bean标签标示配置bean
    id属性标示给bean起名字
    class属性表示给bean定义类型-->
    <bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl"/>
    <bean id="bookService" class="com.itheima.service.impl.BookServiceImpl">
    </bean>
</beans>
- 运行:创建main方法,在main方法中获取IOC容器
package com.itheima;
import com.itheima.dao.BookDao;
import com.itheima.service.BookService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App2 {
    public static void main(String[] args) {
        //1.获取IoC容器, ApplicationContext是接口,所以要new一个实现类,再告诉它配置文件名
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        //2.获取bean(根据bean配置id获取)
//        BookDao bookDao = (BookDao) ctx.getBean("bookDao");
//        bookDao.save();
        BookService bookService = (BookService) ctx.getBean("bookService");
        bookService.save();
    }
}
   
- dao层代码 
  - 接口
 
	package com.itheima.dao;
public interface BookDao {
    public void save();
}
- 实现类
package com.itheima.dao.impl;
import com.itheima.dao.BookDao;
public class BookDaoImpl implements BookDao {
    public void save() {
        System.out.println("book dao save ...");
    }
}
- service层代码 
  - 接口
 
   package com.itheima.service;
public interface BookService {
    public void save();
}
- 实现类
package com.itheima.service.impl;
import com.itheima.dao.BookDao;
import com.itheima.service.BookService;
public class BookServiceImpl implements BookService {
    private BookDao bookDao = new BookDaoImpl();
    public void save() {
        System.out.println("book service save ...");
        bookDao.save();
    }
}
- 运行结果 
 注:只设计IOC操作,下章讲绑定bean,这样才算完整。
视频链接



















