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