zoukankan      html  css  js  c++  java
  • spring 配置bean以及配置依赖 (2)

    一、使用ref引用其他对象

        <!-- 配置 bean -->
        <bean id="dao5" class="com.hp.spring.ref.Dao"></bean>
        <bean id="service" class="com.hp.spring.ref.Service">
            <!-- 通过 ref 属性值指定当前属性指向哪一个 bean! -->
            <property name="dao" ref="dao5"></property>
        </bean>  
    

    二、通过有参构造器创建对象

        <!-- 通过构造器注入属性值 -->
        <bean id="helloWorld3" class="com.hp.spring.helloworld.HelloWorld">
            <!-- 要求: 在 Bean 中必须有对应的构造器.  -->
            <constructor-arg value="Mike"></constructor-arg>
        </bean>  
    

    1 通过index精确定位参数顺序

        <!-- 若一个 bean 有多个构造器, 如何通过构造器来为 bean 的属性赋值 -->
        <!-- 可以根据 index 和 value 进行更加精确的定位. (了解) -->
        <bean id="car" class="com.hp.spring.helloworld.Car">
            <constructor-arg value="KUGA" index="1"></constructor-arg>
            <constructor-arg value="ChangAnFord" index="0"></constructor-arg>
            <constructor-arg value="250000" type="float"></constructor-arg>
        </bean> 
        <bean id="car2" class="com.hp.spring.helloworld.Car">
            <constructor-arg value="ChangAnMazda"></constructor-arg>
            <!-- 若字面值中包含特殊字符, 则可以使用 DCDATA 来进行赋值. (了解) -->
            <constructor-arg>
                <value><![CDATA[<ATARZA>]]></value>
            </constructor-arg>
            <constructor-arg value="180" type="int"></constructor-arg>
        </bean>  
    

    三、引用bean

    1 使用内部bean

        <!-- 声明使用内部 bean -->
        <bean id="service2" class="com.hp.spring.ref.Service">
            <property name="dao">
                <!-- 内部 bean, 类似于匿名内部类对象. 不能被外部的 bean 来引用, 也没有必要设置 id 属性 -->
                <bean class="com.hp.spring.ref.Dao">
                    <property name="dataSource" value="c3p0"></property>
                </bean>
            </property>
        </bean>  
    

    2 使用list,set

        <!-- 装配集合属性 -->
        <bean id="user" class="com.hp.spring.helloworld.User">
            <property name="userName" value="Jack"></property>
            <property name="cars">
                <!-- 使用 list 元素来装配集合属性 -->
                <list>
                    <ref bean="car"/>
                    <ref bean="car2"/>
                </list>
            </property>
        </bean>  
    

    3 声明集合类型

        <!-- 声明集合类型的 bean -->
        <util:list id="cars">
            <ref bean="car"/>
            <ref bean="car2"/>
        </util:list>
        
        <bean id="user2" class="com.hp.spring.helloworld.User">
            <property name="userName" value="Rose"></property>
            <!-- 引用外部声明的 list -->
            <property name="cars" ref="cars"></property>
        </bean>  
    

    四、其他

    1 使用p命名空间进行注入属性

        <bean id="user3" class="com.hp.spring.helloworld.User"
            p:cars-ref="cars" p:userName="Titannic"></bean>  
    

    2 使用parent继承

        <!-- bean 的配置能够继承吗 ? 使用 parent 来完成继承 -->    
        <bean id="user4" parent="user" p:userName="Bob"></bean>
        
        <bean id="user6" parent="user" p:userName="维多利亚"></bean>  
    

    3 使用depends-on

    使用depends-on时,被depends-on引用的对象,必须存在,否则抛出异常

        <!-- 测试 depents-on -->    
        <bean id="user5" parent="user" p:userName="Backham" depends-on="user6"></bean>  
    

    整个系列项目代码: http://git.oschina.net/nmc5/spring

  • 相关阅读:
    Linux中的文件特殊权限
    服务器管理
    程序图表统计知识
    EasyUI 添加tab页(iframe方式)
    打造自己的reset.css
    CI的知识点
    easyui资源
    eval解析JSON中的注意点
    如何在一个frame中调用另一个frame中的javascript函数
    Egret 摇一摇功能
  • 原文地址:https://www.cnblogs.com/linhp/p/5881765.html
Copyright © 2011-2022 走看看