spring学习-2

Spring_属性配置细节

1、若字面值包含特殊字符,可以使用<[CDATA[]]>把字面值包裹起来

<value><![CDATA[<3333>^]]></value>

2、ref属性来建立bean之间的引用关系和级联属性赋值

2.1 定义User.java(见上一篇文章)和Manager.java Bean
package com.test;

    public class Manager {
    private String name;
    private User user;

    public void setName(String name) {
        this.name = name;
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    @Override
    public String toString() {
        return "Manager [name=" + name + ",  user=" + user + "]";
    }
 }
2、2 配置spring xml文件
<bean id="manager" class="com.test.Manager">
        <property name="name" value="gg"></property>
        <!-- 可以使用ref属性来建立bean之间的引用关系 -->
        <property name="user" ref="user1"></property>
        <!-- 为级联属性赋值,注意:属性需要先初始化后才能为级联属性赋值,否则会有异常,和struts2不同 -->
        <property name="user.age" value="33" />**<!--这里的user是Manager的属性值,而不是ref引用的id-->**
        <!-- 定义内部bean,不能被外部引用,只能内部使用 -->
        <!-- <property name="user"> <bean class="com.test.User"> <constructor-arg 
            value="ccd" index="0"></constructor-arg> <constructor-arg value="30" index="1"></constructor-arg> 
            <constructor-arg value="13456" index="2"> </constructor-arg> </bean> </property> 
            <property name="user.age" value="33"/> -->
   </bean>

3、配置集合、Map和Properties

3.1 配置集合List

修改Manager.java的user为List类型,并生成get set方法

      private List<User> users;

    public List<User> getUsers() {
        return users;
    }

    public void setUsers(List<User> users) {
        this.users = users;
    }

配置xml文件

<bean id="manager1" class="com.test.collectic.Manager">
        <property name="name" value="fei"></property>
        <property name="users">
            <!-- 使用list节点为List类型的属性赋值 -->
            <list>
                <ref bean="user1" />
                <ref bean="user2" />
            </list>
        </property>
    </bean>

配置单例的集合bean,以供多个bean引用,需要用到util命名空间

引用命名空间:

871879-20170119001329906-1127655137.png

配置xml文件

<util:list id="users">
        <ref bean="user" />
        <ref bean="user2" />
    </util:list>
    <!-- 测试引用 集合bean -->
    <bean id="manager2" class="com.test.collectic.Manager">
        <property name="name" value="fff"></property>
        <property name="users" ref="users"></property>
    </bean>
3.2 配置Map
<bean id="newManager" class="com.test.collectic.NewManager">
        <property name="name" value="ya"></property>
        <property name="users">
            <map>
                <entry key="小米" value-ref="user"></entry>
                <entry key="小哈" value-ref="user2"></entry>
            </map>
        </property>
    </bean>
3.3 配置Properties

新建Connect.java

package com.test.collectic;
   import java.util.Properties;

   public class Connect {
    private Properties properties;

    public Properties getProperties() {
        return properties;
    }

    public void setProperties(Properties properties) {
        this.properties = properties;
    }

    @Override
    public String toString() {
        return "Connect [properties=" + properties + "]";
    }
}

配置xml文件

<!--配置Properties属性值,为了与hibernate整合需要用到 -->
    <bean id="connect" class="com.test.collectic.Connect">
        <property name="properties">
            <!-- 使用props和prop子节点来为 Properties属性赋值 -->
            <props>
                <prop key="user">root</prop>
                <prop key="password">root</prop>
                <prop key="jdbcUrl">jdbc:mysql:///user</prop>
                <prop key="driverClass">com.mysql.jdbc.Driver</prop>
            </props>
        </property>
    </bean>

4、通过p命名空间为bean的属性赋值

<!-- 通过p命名空间为bean的属性赋值,需要先导入p的命名空间,相比于传统的更简单 -->
    <bean id="manager3" class="com.test.collectic.Manager" p:name="qin"
        p:users-ref="users">
    </bean>

5、结果预览

Manager [name=qin, users=[User [name=aa, age=33, money=10.0, no=123456], User [name=cc, age=10, money=0.0, no=<3333>]]]
NewManager [name=ya, users={小米=User [name=aa, age=33, money=10.0, no=123456], 小哈=User [name=cc, age=10, money=0.0, no=<3333>]}]
Connect [properties={driverClass=com.mysql.jdbc.Driver, user=root, password=root, jdbcUrl=jdbc:mysql:///user}]

转载于:https://www.cnblogs.com/feiii/p/6298749.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值