文章目录
一.SpringIoC核心概念
IOC、IOC容器、Bean、DI
1.IOC(Inversion of Control)控制反转
- 什么是控制翻转?
当我们需要使用对象的时候,我们一般会new来产生对象,但使用IoC思想后,我们获取对象不再是主动new对象,而是将该对象的创建控制权交给‘外部’,由‘外部’创建对象并交给我们。
- Spring和IoC之间的关系是什么?
IoC是一种思想,Spring对IoC进行了实现
Spring提供一个容器,名为IoC容器,充当IoC容器中的‘外部’
- IoC容器的作用是什么?
IoC容器存放了一个个的bean对象
IoC容器负责对象的创建,初始化等一系列工作
2.DI(Dependency Injection)依赖注入
- 什么是依赖注入?
容器中建立bean与bean之间的依赖关系的整个过程,就叫做依赖注入
总结:DI可以认为是IoC的一种具体实现
二.bean的实例化
对象已经能交给Spring的IOC容器来创建了,但是容器是如何来创建对象的呢?这就需要了解bean的实例化过程了
实例化bean可以通过配置文件来实现,但过于繁琐,下面所有内容将尽量使用注解来完成
1.构造方法实例化bean
顾名思义,bean其实就是一个对象,对象实例化自然就会调用自己的构造函数
使用@Componet注解
@Component("bookDao")
public class BookDaoImpl implements BookDao {
public void save() {
System.out.println("book dao save ..." );
}
}
之前没使用注解的时候,需要手动在配置文件中配置,使用完注解后,只需要配置spring的扫描包路径,就会达到和在配置文件中定义bean一样的效果
注意:Spring底层使用的是无参构造函数来实例化bean的。