一、依赖注入概念(DI)
loC (Inversion Of Control)控制翻转,Spring反向控制应用程序所需要使用的外部资源
Dl (Dependency lnjection)依赖注入,应用程序运行依赖的资源由Spring为其提供,资源进入应用程序的方式称为注入
loC与DI是同一件事站在不同角度看待问题
二、依赖注入的两种方式
1、set注入
名称:property
类型:标签
归属: bean标签
作用:使用set方法的形式为bean提供资源
格式:
<bean>
<property />
</bean>
基本属性:
<property name="rxopertyName" value="propertyValue" />
<property name="rxopertyName" ref= "beanId"/>
name:对应bean中的属性名,要求该属性必须提供可访问的set方法(严格规范为此名称是set方法对应名称)
value:设定非引用类型属性对应的值,不能与ref同时使用
ref:设定引用类型属性对应bean的id,不能与value同时使用
注意:—个bean可以有多个property标签
案例
1、续写至 IoC入门案例 02
2、创建dao层
3、在业务层的操作
3.1.定义需要注入的私有变量
3.2.对需要注入的变量添加set方法
3.3.将要注入的资源声明为bean,如果是非引用类型,就不需要这步
3.4.1将要注入的引用类型的变量通过property属性就行注入,对应的name是要注入的变量名称,使用ref说明要注入的bean的id
3.4.2将要注入的非引用类型的变量通过property属性就行注入,对应的name是要注入的变量名称,使用value说明要注入的值
测试
2、构造器注入
名称: constructor-arg
类型:标签
归属: bean标签
作用:使用构造方法的形式为bean提供资源,兼容早期遗留系统的升级工作
格式:
<bean>
<constructor-arg />
</bean>
基本属性:
<constructor-arg name="argsName" value="argsValue />
name:对应bean中的构造方法所携带的参数名
value:设定非引用类型构造方法参数对应的值,不能与ref同时使用
ref:设定引用类型属性对应bean的id,不能与value同时使用
type : 安定构造方法参数的类型,用于按类型匹配参数或进行类型校验
index:设定构造方法参数的位置,用于按位置匹配参数,参数index值从0开始计数
注意:—个bean可以有多个constructor-arg标签
案例一,续写至上面
1、在dao层和server层的实现类里面创建以定义需要注入的私有变量为参数的构造函数
dao层
server层
2、在配置文件的配置
案例二、续写至案例一
1、在dao层的实现类里面创建以定义需要注入的私有变量为参数的构造函数
2、在配置文件的配置