课时3:三种方式的依赖注入、给各种集合类型的属性注入

.1)三种方式的依赖注入
  1.set方式的依赖注入 使用的标签是property

    1.1 IOC容器的赋值:如果是简单类型(8个基本+String) 使用value赋值;

      如果是对象类型 使用ref=“其他需要依赖的bean的id” 来赋值

<!--    课程类-->
    <bean id="Scourse" class="net.bdqn.hbz.pojo.Scourse">
        <property name="CName" value="java"></property>
        <property name="CHour" value="200"></property>
        <property name="teacher" ref="Teacher"></property>
    </bean>
<!--    老师类-->
    <bean id="Teacher" class="net.bdqn.hbz.pojo.Teacher">
        <property name="teaName" value="何邦柱"></property>
        <property name="teaAge" value="20"></property>
    </bean>

      1.1.1 就是调用了类中的set方法

      1.1.2 因此可以实现依赖注入

      1.1.3 依赖注入的底层就是通过反射技术来做的

        1.1.3.1 列如teaName 先通过拼接set+TeaName ---->setTeaName 在通过class里面的值来通过反射找寻类中的方法

  2.构造方法方式的依赖注入

    2.1 IOC容器的赋值:如果是简单类型(8个基本+String) 使用value赋值;   如果是对象类型 使用ref=“其他需要依赖的bean的id” 来赋值

    2.2 通过<constructor-arg>来进行注入 如果<constructor-arg>的顺序与构造方法的顺序不一致,则需要通过type或者index或name来指定

 <bean id="Scourse" class="net.bdqn.hbz.pojo.Scourse">
       <constructor-arg value="java" index="0" name="cName" type="java.lang.String"></constructor-arg>
        <constructor-arg value="200" index="1"></constructor-arg>
        <constructor-arg ref="Teacher" index="2"></constructor-arg>
    </bean>

 <bean id="Teacher" class="net.bdqn.hbz.pojo.Teacher">
<constructor-arg value="何邦柱" index="0"></constructor-arg>
        <constructor-arg value="20" index="1"></constructor-arg>
    </bean>

   3.p命名空间方式注入

    3.1 引入命名空间

xmlns:p="http://www.springframework.org/schema/p"

    3.2 如何使用使用p标签
 

<bean id="Teacher" class="net.bdqn.hbz.pojo.Teacher" p:teaName="傻逼" p:teaAge="22">

      3.2.1 如果是简单类型:p:属性名="输入的值" 如果是引用类型(除了String):p:属性名-ref=“引用的id”

      3.2.2 注意多个p之间不要有多余的空格

.2)给各种集合类型的属性注入 列如 Map List Set Properties 本次示例用的是set注入方式

  1.List集合注入

 <property name="list">
            <list>
                <value>list篮球1</value>
                <value>list篮球2</value>
                <value>list篮球3</value>
            </list>
        </property>

  2.array数组注入

<property name="array">
            <array>
                <value>array足球1</value>
                <value>array足球2</value>
                <value>array足球3</value>
            </array>
</property>

  3.map集合注入

<property name="map">
            <map>
                <entry>
                    <key>
                        <value>ko</value>
                    </key>
                    <value>乒乓球1</value>
                </entry>
                <entry>
                    <key>
                        <value>kk</value>
                    </key>
                    <value>乒乓球2</value>
                </entry>
                <entry>
                    <key>
                        <value>koo</value>
                    </key>
                    <value>乒乓球3</value>
                </entry>
            </map>
        </property>

  4.set集合注入

<property name="strings">   
    <set>       
        <value>1</value>       <value>2</value>       <value>3</value>  
    </set>
</property>

  5.properties集合注入

 <property name="properties">
            <props>
                <prop key="jj">网球1</prop>
                <prop key="jj1">网球2</prop>
                <prop key="jj2">网球3</prop>
            </props>
        </property>

猜你喜欢

转载自www.cnblogs.com/thisHBZ/p/12484382.html