• 课时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>
  • 相关阅读:
    IFRAME自适应高度
    项目支出数据产生过程
    hbase体系结构以及说明
    PLSQL 设置
    hadoop编程模型
    捕捉桌面上的窗口信息
    在不修改代码的情况下无限扩展应用项目
    跟我一起玩Win32开发(25):监视剪贴板
    跟我一起玩Win32开发(24):计时器
    跟我一起玩Win32开发(23):渐变颜色填充
  • 原文地址:https://www.cnblogs.com/thisHBZ/p/12484382.html
Copyright © 2020-2023  润新知