『Spring』依赖注入
依赖注入方式
依赖注入的两种方式
setter注入:
简单类型。
引用类型(常用)。
构造器注入:
简单类型。
引用类型。
setter方式注入
引用类型
简单类型
构造方式注入
引用类型
简单类型
参数适配
依赖注入方式选择
强制依赖使用构造器进行,使用setter注入有概率不进行注入导致null对象出现。
可选依赖使用setter注入进行,灵活性强。
Spring框架倡导使用构造器,第三方框架内部大多数采用构造器注入的形式进行数据初始化,相对严谨。
如果有必要可以两者同时使用,使用构造器注入完成强制依赖的注入,使用setter注入完成可选依赖的注入。
实际开发过程中还要根据实际情况分析,如果受控对象没有提供setter方法就必须使用构造器注入。
自己开发的模块推荐使用setter注入。
依赖自动装配
自动装配概念
IoC容器根据bean所依赖的资源在容器中自动查找并注入到bean中的过程称为自动装配。
自动装配方式:
按类型(常用)。
按名称。
按构造方法。
不启用自动装配。
自动装配类型
依赖自动装配
配置中使用bean标签autowire属性设置自动装配的类型。
1 | <bean id="bookDao" class="edu.heuet.dao.impl.BookDaoImpl"/> |
依赖自动装配特征
自动装配用于引用类型依赖注入,不能对简单类型进行操作。
使用按类型装配时(byType)必须保障容器中相同类型的bean唯一,推荐使用。
使用按名称装配时(byName)必须保障容器中具有指定名称的bean,因变量名与配置耦合,不推荐使用。
自动装配优先级低于setter注入与构造器注入,同时出现时自动装配配置失效。
集合注入
注入数组类型数据
1 | <property name="array"> |
注入List类型数据
1 | <property name="list"> |
注入Set类型数据
1 | <property name="set"> |
注入Map类型数据
1 | <property name="map"> |
注入Properties类型数据
1 | <property name="properties"> |
说明:property标签表示setter方式注入,构造方式注入constructor-arg标签内部也可以写<array>、<list>、<set>、<map>、<props>标签。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 KissSheep's Blog!
评论