Spring ioc :控制反转
spring 通过 (Di 依赖注入) 实现ioc(控制反转)
实现IOC的方法:注入。所谓依赖注入,就是由IOC容器在运行期间,动态地将某种依赖关系注入到对象之中。
依赖注入是从应用程序的角度在描述,应用程序依赖容器创建并注入它所需要的外部资源;
而控制反转是从容器的角度在描述,容器控制应用程序,由容器反向的向应用程序注入应用程序所需要的外部资源。
ioc注入方式有:setter注入,构造器注入,静态工厂注入,实例工厂注入,接口注入
有一个User类结构如下,以下将以User为例进行注入
public class User {
private int id;
private String name;
private String password;
}
一、setter注入
<!--setter注入-->
<bean id="HelloWorld2" class="bean.HelloWorld">
<property name="name" value="ha"/>
</bean>
二、构造器注入
<!--构造方法注入-->
1.
<bean id="User" class="bean.User">
<constructor-arg index="0" value="1"/>
<constructor-arg index="1" value="ha"/>
<constructor-arg index="2" value="xu"/>
</bean>
2、
<bean id="User1" class="bean.User">
<constructor-arg name="id" value="1"/>
<constructor-arg name="name" value="hh"/>
<constructor-arg name="password" value="jj"/>
</bean>
3、
<bean id="User2" class="bean.User">
<constructor-arg type="int" value="1"/>
<constructor-arg type="java.lang.String" value="ll"/>
<constructor-arg type="java.lang.String" value="ja"/>
</bean>
4.
<bean id="User3" class="bean.User">
<constructor-arg type="int">
<value>22</value>
</constructor-arg>
<constructor-arg type="java.lang.String">
<value>kk</value>
</constructor-arg>
<constructor-arg type="java.lang.String">
<value>aa</value>
</constructor-arg>
</bean>
三、接口注入
接口注入模式因为具备侵入性,它要求组件必须与特定的接口相关联,因此并不被看好,实际使用有限。
四、静态工厂与实例工厂
静态工厂与实例工厂均是创建一个工厂类。