IoC入门案例
IoC 入门案例思路分析
- 管理什么?
- Service 与 Dao
- 如何将被管理的对象告知 IoC 容器?
- 配置
- 被管理的对象交给IoC容器,如何获取到 IoC 容器?
- 接口
- IoC 容器得到后,如何从容器中获取 bean ?
- 接口方法
- 使用 Spring 导入哪些坐标?
- pom.xml
入门案例实现
导入Spring坐标
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.10.RELEASE</version> </dependency> </dependencies>
定义Spring管理的类 (接口)
public interface BookService { public void save(); }
public class BookServiceImpl implements BookService { private BookDao bookDao; public void save() { System.out.println("book service save ..."); } }
创建Spring配置文件,配置对应类作为Spring管理的bean
<?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="org.itheima.dao.impl.BookDaoImpl" /> <bean id="bookService" class="org.itheima.service.impl.BookServiceImpl" /> </beans>
- 注意:bean定义时 id 属性在同一个上下文中不能重复
初始化IoC容器(Spring核心容器 / Spring容器),通过容器获取bean
public class App2 { public static void main(String[] args) { //3.获取IoC容器 ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); //4.获取bean // BookDao bookDao = (BookDao) ctx.getBean("bookDao"); // bookDao.save(); BookService bookService = (BookService) ctx.getBean("bookService"); bookService.save(); } }