spring 配置文件中的<value></value>,常嵌套在其它标签中使用,比如<property>,<key>,<list>,<set>,<entry>等,很多人习惯上认为它只是表示其它标签的"值"。其实,它还有另一种含义:表示“类型”,写在<value></value>中的内容在spring中被认为是简单数据类型,即字符串或数字。因此,在应用中它不会用来处理Java类中的复杂数据类型,它也不能处理复杂数据类型。比如:
Java类:
public
class Student {
private String comp;
private Computer c;
private String comp;
private Computer c;
private List<Computer> computers;
//一系列的setter.getter方法
}
//一系列的setter.getter方法
}
属性类:
public
class Computer {
private String name;
private Integer price;
//一系列的setter.getter方法
}
private String name;
private Integer price;
//一系列的setter.getter方法
}
配置文件:
<
beans
>
< bean id ="computer" class ="com.yangfei.spring.entity.Computer" >
< property name ="name" >
< value >DELL </ value >
</ property >
< property name ="price" >
< value >100 </ value >
</ property >
</ bean >
< bean id ="student" class ="com.yangfei.spring.entity.Student" >
< property name ="comp" >
< value >computer </ value > <!-- 这里它不认为computer是bean,而是当作字符串"computer"来处理-->
</ property >
< property name ="c" >
< ref bean ="computer" />
< bean id ="computer" class ="com.yangfei.spring.entity.Computer" >
< property name ="name" >
< value >DELL </ value >
</ property >
< property name ="price" >
< value >100 </ value >
</ property >
</ bean >
< bean id ="student" class ="com.yangfei.spring.entity.Student" >
< property name ="comp" >
< value >computer </ value > <!-- 这里它不认为computer是bean,而是当作字符串"computer"来处理-->
</ property >
< property name ="c" >
< ref bean ="computer" />
<!--
<value>computer</value>这样写会报错
-->
</ property >
< property name ="computers" >
< list >
< ref bean ="computer" />
<!--
<value>computer</value> 这样写也会报错
-->
</ list >
</ property >
<value>computer</value>这样写会报错
-->
</ property >
< property name ="computers" >
< list >
< ref bean ="computer" />
<!--
<value>computer</value> 这样写也会报错
-->
</ list >
</ property >
本文转自NightWolves 51CTO博客,原文链接:http://blog.51cto.com/yangfei520/244857
,如需转载请自行联系原作者