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>