Spring 核心概念
IoC(Inversion of Control)控制反转: 使用对象时,由 new产生对象转换为 由外部提供对象,此过程中对象创建的控制权由程序转移到外部。 Spring技术对IoC思想进行了实现 Spring提供了一个容器,称为 IoC容器,来充当 IoC思想中的 “外部” IoC容器负责对象的创建,初始化等一系列工作,被创建或管理的对象在 IoC容器中统称为 Bean DI(Depandency Injection)依赖注入: 在容器中建立 bean 与 bean 之间的依赖关系的整个过程,称为依赖注入
IoC
准备工作
下载 SpringAssistant 插件 pom中导入 spring坐标
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
新建一个 spring 的配置文件
// 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">
<bean id="bookDao" class="dao.BookDaoImpl"/>
<bean id="bookService" class="service.BookServiceImpl"/>
</beans>
进行测试
public class App1 {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
BookDao bookDao = (BookDao) ctx.getBean("bookDao");
bookDao.save();
}
}
DI
public class BookServiceImpl implements BookService{
private BookDao bookDao1;
public void save() {
System.out.println("book service save...");
bookDao1.save();
}
public void setBookDao1(BookDao bookDao1) {
this.bookDao1 = bookDao1;
}
}
<bean id="bookDao" class="dao.BookDaoImpl"/>
<bean id="bookService" class="service.BookServiceImpl">
<property name="bookDao1" ref="bookDao"/>
</bean>
这样就可以完成 BookServiceImpl 对象中,bookDao1 成员的初始化。
public class App1 {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
BookService bookService = (BookService) ctx.getBean("bookService");
bookService.save();
}
}
|