spring给属性赋值特殊符号,属性是引用时怎么赋值

spring-day03

spring特殊值处理

sname属性赋值为null

    <bean id="studentfour" class="com.xinkai.spring.pojo.Student">
        <property name="sid" value="1003"></property>
        <property name="sname">
            <null></null>
        </property>
        <property name="age" value="25"></property>
        <property name="gender" value="男"></property>
    </bean>

sname加入特殊符号

例如:sname:<我是名字>

    <bean id="studentfour" class="com.xinkai.spring.pojo.Student">
        <property name="sid" value="1003"></property>
        <property name="sname" value="&lt;我是名字&gt;"></property>
        <property name="age" value="25"></property>
        <property name="gender" value="男"></property>
    </bean>
解释:利用&lt;&gt;来包住名字即可

CDATA节

    <bean id="studentfour" class="com.xinkai.spring.pojo.Student">
        <property name="sid" value="1003"></property>
        <property name="sname">
            <value><![CDATA[<我是名字>]]></value>
        </property>
        <property name="age" value="25"></property>
        <property name="gender" value="男"></property>
    </bean>
    解释:同样可以实现,直接在idea中输入CD即可一键生成格式

为类型属性赋值(三种方式)

外部bean直接赋值

    <bean id="studentFive" class="com.xinkai.spring.pojo.Student">
        <property name="sid" value="1005"></property>
        <property name="sname" value="赵思"></property>
        <property name="age" value="26"></property>
<!--        外部bean赋值,ref引用容器中某个bean的id,将对应bean为属性赋值-->
        <property name="clazz" ref="clazzOne"></property>
    </bean>

内部bean

    <bean id="studentFive" class="com.xinkai.spring.pojo.Student">
        <property name="sid" value="1005"></property>
        <property name="sname" value="赵思"></property>
        <property name="age" value="26"></property>
        <property name="clazz">
<!--            bean中再次声明bean就是内部bean-->
<!--            内部bean用于给属性赋值,不能在外部通过ioc容器获取-->
            <bean id="clazzInner" class="com.xinkai.spring.pojo.Clazz">
                <property name="clazzId" value="456"></property>
                <property name="clazzName" value="哈哈"></property>
            </bean>
        </property>
    </bean>
   

级联属性赋值

   <bean id="clazzOne" class="com.xinkai.spring.pojo.Clazz">
        <property name="clazzId" value="111"></property>
        <property name="clazzName" value="王者"></property>
    </bean>
    <bean id="studentSix" class="com.xinkai.spring.pojo.Student">
        <property name="sid" value="1004"></property>
        <property name="sname" value="赵六"></property>
        <property name="age" value="26"></property>
        <property name="gender" value="女"></property>
        <!-- 一定先引用某个bean为属性赋值,才可以使用级联方式更新属性 -->
        <property name="clazz" ref="clazzOne"></property>
        <property name="clazz.clazzId" value="3333"></property>
        <property name="clazz.clazzName" value="你好班"></property>
    </bean>
    解释:一般不采用级联,因为需要外部创建一个clazz或者手动创建一个clazz对象

为数组属性赋值

	<bean id="clazzOne" class="com.xinkai.spring.pojo.Clazz">
        <property name="clazzId" value="111"></property>
        <property name="clazzName" value="王者"></property>
    </bean>
    <bean id="student1" class="com.xinkai.spring.pojo.Student">
        <property name="sid" value="1200"></property>
        <property name="sname" value="你好"></property>
        <property name="age" value="28"></property>
        <property name="gender" value="女"></property>
        <property name="clazz" ref="clazzOne"></property>
        <property name="hobbies">
            <array>
                <value>你好</value>
                <value>spring</value>
            </array>
        </property>
    </bean>
 解释:如果属性是一个数组的话,那么赋值的时候需要在property中加入array里面赋值

为集合类型赋值

    <bean id="clazz2" class="com.xinkai.spring.pojo.Clazz">
        <property name="clazzId" value="4444"></property>
        <property name="clazzName" value="java"></property>
        <property name="students">
            <list>
                <ref bean="studentOne"></ref>
                <ref bean="studentFive"></ref>
                <ref bean="studentFive"></ref>
            </list>
        </property>
    </bean>

为map类型赋值

    <bean id="student3" class="com.xinkai.spring.pojo.Student">
        <property name="sid" value="1004"></property>
        <property name="sname" value="赵四"></property>
        <property name="age" value="26"></property>
        <property name="gender" value="女"></property>
        <property name="clazz" ref="clazzOne"></property>
        <property name="hobbies">
            <array>
                <value>吃</value>
                <value>玩</value>
            </array>
        </property>
        <property name="teacherMap">
            <map>
                <entry>
                    <key>
                        <value>10086</value>
                    </key>
                    <ref bean="teacherOne"></ref>
                </entry>
                <entry>
                    <key>
                        <value>10010</value>
                    </key>
                    <ref bean="teacherTwo"></ref>
                </entry>
            </map>
        </property>
    </bean>

测试代码:
        ApplicationContext ioc = new ClassPathXmlApplicationContext("spring-ioc.xml");
        Student student3 = ioc.getBean("student3", Student.class);
        System.out.println(student3);

命名空间

    <util:map id="teacherMap">
        <entry>
            <key>
                <value>10023</value>
            </key>
            <ref bean="teacherOne"></ref>
        </entry>
        <entry>
            <key>
                <value>10036</value>
            </key>
            <ref bean="teacherTwo"></ref>
        </entry>
    </util:map>
    <bean id="student6" class="com.xinkai.spring.pojo.Student" p:sid="100223" p:sname="小明"
          p:clazz-ref="clazzOne" p:teacherMap-ref="teacherMap"></bean>

引入外部属性文件

// 配置ioc的xml文件
    <context:property-placeholder location="jdbc.properties"/>
    <bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="url" value="${jdbc.url}"/>
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="username" value="${jdbc.user}"/>
        <property name="password" value="${jdbc.password}"/>
     </bean>

// 外部的properties文件
jdbc.user=root
jdbc.password=123456
jdbc.url=jdbc:mysql://localhost:3306/reggie?serverTimezone=UTC
jdbc.driver=com.mysql.cj.jdbc.Driver

// 测试数据源
        ApplicationContext ioc = new ClassPathXmlApplicationContext("spring-ioc.xml");
        DataSource dataSource = ioc.getBean(DataSource.class);
        Connection connection = dataSource.getConnection();
        System.out.println(connection);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值