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

相關文章
相關標籤/搜索