Spring DI(依赖注入)

DI(依赖注入)Dependency Injection

1 DI是什么,DI可以理解为IOC的一部分

2 举例:当一个类A中需要依赖另一个类B对象时,把B赋值给A的过程就叫做依赖注入

代码示例:

    <bean id="peo2" class="com.qyx.Bean.PeopleFactory" factory-method="newInstance02"/>
    <bean id="peo3" class="com.qyx.Bean.People">
        <!--
            下面赋值方法等效于
            <property name="id">
                <value>100</value>
            </property>
        -->
        <property name="id" value="10"></property>
        <property name="name" value="Test"></property>
        <property name="job" value="CTR"></property>
        <property name="major" value="QWE"></property>
        <property name="sets">
            <set>
                <value>aaaaa</value>
                <value>bbbbb</value>
            </set>
        </property>
        <!--List赋值的另一种写法<property name="list" value="1,2,3">
            如果list中只有一个值
        -->
        <property name="lists">
            <list>
                <value>sdsa</value>
            </list>
        </property>
        <!--数组赋值的另一种写法<property name="strs" value="1,2,3">
            如果数组中只有一个值
        -->
        <property name="strs">
            <array>
                <value>1</value>
                <value>2</value>
                <value>3</value>
            </array>
        </property>
        <property name="maps">
            <map>
                <entry key="a" value="b"/>
            </map>
        </property>
        <!--为properties属性赋值-->
        <!--<property name="demo">
            <props>
                <prop key="aa">bb</prop>
            </props>
        </property>-->
        <property name="desk" ref="desk"></property>
    </bean>
    <bean id="desk" class="com.qyx.Bean.Desk">
        <property name="id" value="1"></property>
        <property name="price" value="12"></property>
    </bean>
    <bean id="desk2" class="com.qyx.Bean.Desk" scope="singleton">
        <constructor-arg name="id" value="10"></constructor-arg>
        <constructor-arg name="price" value="20"></constructor-arg>
    </bean>
    <bean id="desk3" class="com.qyx.Bean.Desk" scope="prototype">
        <constructor-arg name="id" value="20"></constructor-arg>
        <constructor-arg name="price" value="60"></constructor-arg>
    </bean>
    <bean class="com.qyx.Bean.InitHelloWorld"></bean>
</beans>

 

    <bean id="peo2" class="com.qyx.Bean.PeopleFactory" factory-method="newInstance02"/>
<bean id="peo3" class="com.qyx.Bean.People">
<!--
下面赋值方法等效于
<property name="id">
<value>100</value>
</property>
-->
<property name="id" value="10"></property>
<property name="name" value="Test"></property>
<property name="job" value="CTR"></property>
<property name="major" value="QWE"></property>
<property name="sets">
<set>
<value>aaaaa</value>
<value>bbbbb</value>
</set>
</property>
<!--List赋值的另一种写法<property name="list" value="1,2,3">
如果list中只有一个值
-->
<property name="lists">
<list>
<value>sdsa</value>
</list>
</property>
<!--数组赋值的另一种写法<property name="strs" value="1,2,3">
如果数组中只有一个值
-->
<property name="strs">
<array>
<value>1</value>
<value>2</value>
<value>3</value>
</array>
</property>
<property name="maps">
<map>
<entry key="a" value="b"/>
</map>
</property>
<!--为properties属性赋值-->
<!--<property name="demo">
<props>
<prop key="aa">bb</prop>
</props>
</property>-->
<property name="desk" ref="desk"></property>
</bean>
<bean id="desk" class="com.qyx.Bean.Desk">
<property name="id" value="1"></property>
<property name="price" value="12"></property>
</bean>
<bean id="desk2" class="com.qyx.Bean.Desk" scope="singleton">
<constructor-arg name="id" value="10"></constructor-arg>
<constructor-arg name="price" value="20"></constructor-arg>
</bean>
<bean id="desk3" class="com.qyx.Bean.Desk" scope="prototype">
<constructor-arg name="id" value="20"></constructor-arg>
<constructor-arg name="price" value="60"></constructor-arg>
</bean>
<bean class="com.qyx.Bean.InitHelloWorld"></bean>
</beans>
posted @ 2019-11-29 20:49  计算机的探索者  阅读(212)  评论(0编辑  收藏  举报