1、IOC的理解
IOC(控制反转)是spring的一个重要思想。首先我们需要从字面意思上去理解IOC
既然是控制反转,那么我们就要知道是谁控制谁、什么是反转、哪些方面要进行反转
1、谁控制谁?控制什么?
在传统的javaSE中,我们需要创建对象的方式基本上是使用new的方式,是程序代码主动的去创建依赖对象,而IOC是一个专门用来创建和管理这些对象的一个容器,意思就是,当我们有了这个IOC容器后,IOC容器来控制对象的。那么控制了什么呢?控制了外部资源获取(不只是对象包括文件等)。
2、反转是什么?哪些方面反转?
我们传统的程序由我们自己在对象中主动控制去直接获取依赖对象,就是正转;而反转则是由容器来帮忙创建以及注入依赖对象。
传统的应用程序结构图:
使用IOC容器后:
我们的客户端不再主动的去创建对象。
另外,我们还要理解一下DI(依赖注入):
**在系统运行中,IOC中的某个对象,动态的提供它所需要的其他对象。**举个例子,我们创建一个Person这个类,它需要另外一个类Car,按照传统的方式,我们需要在Person对象中手动编写代码去创建一个Car对象,但是我们有了Spring之后,我们只需要告诉Spring我们的Person需要一个Car对象,那么在系统运行过程中,spring会在需要的时候自动创建一个Car实例。那么DI到底是怎么实现呢?JAVA1.3之后的一个新特性,反射,它允许程序在运行过程中动态的生成对象,执行对象的方法,改变对象的属性,Spring就是通过反射来实现依赖注入的。
2、IOC容器中的三中依赖注入的方式。
2、1 set方法注入
把需要注入的类写成属性,给他设置一个set方法
public class