1.Spring框架简介
Spring是一个轻量级的框架,它的主要特点是控制反转IOC(Inversion Of Control)和面向切面AOP。
好处:可以降低程序的耦合,便于编码。
2.控制反转
控制反转IOC是一种思想,其核心是将创建对象的权力和维护对象之间关系的权力交给第三方容器(比如Spring)。
依赖注入是实现控制反转思想的方法。
依赖注入(Dependency Injection):通过注入的手段来维护对象与对象之间的依赖关系。
注入的方式有2种:set注入和构造方法注入。set注入是通过调用set方法来给属性赋值,构造方法注入即通过调用构造方法来给属性赋值
3.依赖注入的具体操作
(1) 使用set注入给属性赋值
例如:创建一个Student类,有属性stuId和stuName和age
创建一个spring配置文件,让spring去帮助我们创建对象,并给属性进行赋值
在spring 的配置文件中写bean标签,让Spring帮助创建对象。
<bean id=”唯一标识要创建对象的名称” class=”类的具体路径”/>
id:自己起名,唯一表示要创建对象
class:写要创建对象的全路径,具体到类
property标签用于给属性赋值,将value的值赋给name
测试:
其中 applicationContext为执行上下文,相当于spring容器,configLocation为创建的spring配置文件路径。
在解析spring配置文件的时候,就会实例化配置文件中的对象。
使用getBean方法获取创建的对象
测试结果:
(2)使用构造方法给属性赋值
在spring中创建对象时默认使用无参构造方法,因此要使用构造方法注入就需要重写有参构造方法。
修改配置文件
constuctor标签中,index表示构造方法中形参的下标(从0开始),value为对应形参的值
测试结果:
set注入和构造方法注入的区别
可以看出,set注入底层是通过set方法来进行属性的赋值,构造方法注入底层是通过构造方法进行属性的赋值。
set注入时已经创建好了对象,而构造方法注入是在创建对象的同时进行属性的赋值。