IoC(控制反转,Inversion of Control):面向对象编程的一种设计原则,可以降低代码间耦合度,其中最常见的方式为DI(依赖注入,Dependency Injection)。通过IoC,对象在被创建时由一个调控系统内所有对象的外界实体将其所依赖对象的引用进行传递,即依赖被注入到对象中。
DI实现方式有3种:(1)访问器注入,(2)构造器注入,(3)接口注入(Spring不支持)。其中,最常用方式为访问器注入。
访问器注入
- 声明私有属性(建议使用接口)
private 注入类 注入类对象;
- 声明get与set方法
- 通过Spring管理相关类
- 完成注入
<bean id="entity" class="Entity类全名">
<property name="属性" ref="注入类id"/>
</bean>
<bean id="entity" class="Entity类全名">
<property name="属性" value="常量值"/>
</bean>
当注入的实现类有且仅有一个时,可通过注解@Autowired完成注入
@Autowired
private 注入类 注入类对象;
构造器注入
- 声明私有属性(建议使用接口)
private 注入类 注入类对象;
- 声明构造方法
- 通过Spring管理相关类
- 完成注入
<bean id="entity" class="Entity类全名">
<constructor-arg name="构造方法形参名" ref="注入类id"/>
</bean>
<bean id="entity" class="Entity类全名">
<constructor-arg name="构造方法形参名" value="常量值"/>
</bean>
<bean id="entity" class="Entity类全名">
<constructor-arg index="构造方法形参索引" ref="注入类id"/>
</bean>
<bean id="entity" class="Entity类全名">
<constructor-arg index="构造方法形参索引" value="常量值"/>
</bean>










网友评论