Spring对于赋值Xml赋值方式

1.1. Spring的数据的赋值

1.1.1. 对于基本数据类型的赋值

 <bean id="student" class="com.bjsxt.lc.spring.pojo.AStudent" scope="singleton">

 <property name="id" value="01"/>

 <property name="name"><value>测试</value></property>

 <property name="price" value="2.2"/>

 </bean>

总结:优两种方式:

l 在property的标签里利用value标签

l 在property标签里加入value标签进行赋值

1.1.2. 对于自定义数据类型的赋值

方法一:

<property name="clazz">

 <!-- <bean id="clazz" class="com.bjsxt.lc.spring.pojo.AClazz">

 <property name="id" value="001"/>

 <property name="name" value="教室2"/>

 </bean> -->

 </property>

 

方法二:

 

<property name="clazz" ref="clazz"/>

 <bean id="clazz" class="com.bjsxt.lc.spring.pojo.AClazz">

 <property name="id" value="001"/>

 <property name="name" value="教室2"/>

 </bean>

总结

l 方法一:更多的是以一种内部类的形式赋值

l 方法二:是做了一个类与类之间的关联

1.1.3. 引用型数据类型的赋值

<!-- 测试list -->

 <property name="hobbysList">

 <list>

 <value>List测试数据一</value>

 <value>List测试数据二</value>

 <value>List测试数据三</value>

 </list>

 </property>

 <!-- 测试set容器 -->

 <property name="hobbysSet">

 <set>

 <value>set测试数据一</value>

 <value>set测试数据二</value>

 <value>set测试数据三</value>

 </set>

 </property>

 <!-- 测试Map容器 -->

 <property name="hobbysMap">

 <map>

 <entry key="a" value="a_"/>

 <entry key="b" value="b_"/>

 <entry key="c" value="c_"/>

 </map>

 </property>

 <!-- 测试数组 -->

 <property name="hobbys">

 <array>

 <value>测试数据1</value>

 <value>测试数据2</value>

 <value>测试数据3</value>

 </array>

 </property>

 <!--

 测试 List里面放对象

 不可以在list里面继续放value,然后value里面在bean一个对象

 -->

 <property name="clazzList">

 <list>

<ref bean="clazz"/>

<ref bean="clazz2"/>

 </list>

 </property>

 <!-- properties测试 -->

 <property name="properties">

 <props>

 <prop key="a1">properties测试数据一</prop>

 <prop key="a2">properties测试数据2</prop>

 </props>

 </property>

 </bean>

 

 <bean id="clazz" class="com.bjsxt.lc.spring.pojo.AClazz">

 <property name="id" value="001"/>

 <property name="name" value="教室2"/>

 </bean>

 <bean id="clazz2" class="com.bjsxt.lc.spring.pojo.AClazz">

 <property name="id" value="002"/>

 <property name="name" value="教室3"/>

 </bean>

测试代码:

package com.bjsxt.lc.spring.test;

 

import java.util.Arrays;

 

import org.junit.Test;

 

import com.bjsxt.lc.spring.pojo.AStudent;

 

public class TestFile extends TestFiledInfo

{

@Test

public void testFile()

{

AStudent stu = (AStudent) this.applicationContext.getBean("student");

logger.info("----学生id:{},学生姓名:{},学生学费{}===>", stu.getId(), stu.getName(), stu.getPrice());

logger.info("====学生班级信息:{}", stu.getClazz());

//测试list

logger.info("----list测试-----》{}", stu.getHobbysList());

// set容器不容许值重复

logger.info("----set测试数据---->{}", stu.getHobbysSet());

// 测试Map容器

logger.info("----map容器测试数据---》{}", stu.getHobbysMap());

// 测试clazz'List

logger.info("----clazzList容器测试数据---》{}", stu.getClazzList());

// 测试properties

logger.info("----properties容器测试数据---》{}", stu.getProperties());

//数组

logger.info("-----数组测试----》{}",Arrays.toString(stu.getHobbys()));

logger.info("-----数组测试----》{}",stu.getHobbys());

}

}

 

 

1.1.4. 构造器赋值

注:构造器赋值,必须在实体类中提供构造器

 

 <bean id="clazz3" class="com.bjsxt.lc.spring.pojo.AClazz">

<!--  <constructor-arg index="0" value="10"/>

 <constructor-arg index="1" value="张三"/> -->

 <constructor-arg name="id" value="10"/>

 <constructor-arg name="name" value="张三"/>

 </bean>

测试代码

 

@Test

public void testCons()

{

AClazz clazz = (AClazz) this.applicationContext.getBean("clazz3");

logger.info("===测试对象==={}",clazz);

}

 

 

注:测试代码的父类:

 

 
  1. package com.bjsxt.lc.spring.test;

  2.  
  3. import org.apache.logging.log4j.LogManager;

  4. import org.apache.logging.log4j.Logger;

  5. import org.junit.Before;

  6. import org.junit.Test;

  7. import org.springframework.context.ApplicationContext;

  8. import org.springframework.context.support.ClassPathXmlApplicationContext;

  9.  
  10. public class TestFiledInfo

  11. {

  12. protected Logger logger = LogManager.getLogger(TestFiledInfo.class);

  13.  
  14. protected ApplicationContext applicationContext = null;

  15. @Before

  16. public void infoSpring()

 

{applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");logger.info("---infoSpring--");}}
 
 

 

最后测试结果

 

 
[plain] view plain copy
  1. <code class="language-java">2016-11-11 21:02:29,787 INFO  [main] test.TestFiledInfo (TestFiledInfo.java:19) - ---infoSpring--  
  2. 2016-11-11 21:02:29,796 INFO  [main] test.TestFile (TestFile.java:16) - ----学生id:1,学生姓名:张三,学生学费2.2===>  
  3. 2016-11-11 21:02:29,799 INFO  [main] test.TestFile (TestFile.java:17) - ====学生班级信息:AClazz [id=1, name=教室2]  
  4. 2016-11-11 21:02:29,799 INFO  [main] test.TestFile (TestFile.java:19) - ----list测试-----》[List测试数据一, List测试数据二, List测试数据三]  
  5. 2016-11-11 21:02:29,800 INFO  [main] test.TestFile (TestFile.java:21) - ----set测试数据---->[set测试数据一, set测试数据二, set测试数据三]  
  6. 2016-11-11 21:02:29,801 INFO  [main] test.TestFile (TestFile.java:23) - ----map容器测试数据---》{a=a_, b=b_, c=c_}  
  7. 2016-11-11 21:02:29,801 INFO  [main] test.TestFile (TestFile.java:25) - ----clazzList容器测试数据---》[AClazz [id=1, name=教室2], AClazz [id=2, name=教室3]]  
  8. 2016-11-11 21:02:29,801 INFO  [main] test.TestFile (TestFile.java:27) - ----properties容器测试数据---》{a2=properties测试数据2, a1=properties测试数据一}  
  9. 2016-11-11 21:02:29,802 INFO  [main] test.TestFile (TestFile.java:29) - -----数组测试----》[测试数据1, 测试数据2, 测试数据3]  
  10. 2016-11-11 21:02:29,802 INFO  [main] test.TestFile (TestFile.java:30) - -----数组测试----》测试数据1</code>  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值