Spring IOC的三种依赖注入方式

IOC为了处理类与类之间复杂关系而产生,经过控制反转与依赖注入思想将类与类之间的关系放到配置文件中,个各种都是相对独立存在的,类之间的调用关系由配置文件来实现。由此实现程序的松耦合。 spring

DI:控制反转, 框架

依赖注入方式: this

1.接口注入:在接口中定义要注入的信息,并经过接口来完成注入。(Spring不支持这种注入方式--不支持的缘由是--Spring声称其是非入侵式的《离开这个框架也能活》,若是使用接口注入的话,就违背了这一原则) xml

2.设置注入:在被注入类中定义set方法,并在参数中定义须要注入的对象。先实例化对象,而后查找对依赖的对象并实例化依赖对象,最后调用set方法将依赖对象注入。 对象

<?xml version="1.0" encoding="UTF-8"?>
<beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    <bean id="actions" class="Actions"/>
    <bean id="execute" class="Execute">
        <property name="actions">
            <ref bean="actions"/>
        </property>
    </bean>
</beans> 接口

public class Execute {
    Actions actions;
    public void setActions(Actions actions) {
        this.actions = actions;
    }
    public Execute(){}    //构造方法
    public void doStr(){
        actions.say();
    }
} io

3.构造注入:在要被注入的类中声明一个构造方法,并在此方法的参数中定义要注入的对象。spring调用构造方法时,会将这些对象都实例化好,而后经这些对象做为参数注入。 class

<?xml version="1.0" encoding="UTF-8"?>
<beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    <bean id="actions" class="Actions"/>
    <bean id="execute" class="Execute">
        <property name="actions">
            <ref bean="actions"/>
        </property>
    </bean>
</beans> 配置

public class Execute {
    IActions actions;
    public Execute(Actions actions){//构造方法
        this.actions = actions;
    }
    public void doStr(){
        actions.say();
    }
} coding

相关文章
相关标签/搜索