一、构造方法赋值:
首先提供构造方法类UserInfo.java:
public class UserInfo {
//1、普通类型
public UserInfo(int age, String name) {
System.out.println(age+" , "+name);
}
//2、自定义类型
public UserInfo(Date birth) {
System.out.println(birth);
}
//3、数组类型
public UserInfo(String [] mobiles) {
for (String mobile : mobiles) {
System.out.println(mobile);
}
}
//4、list类型
public UserInfo(List<Double> times) {
for (Double time : times) {
System.out.println(time);
}
}
//5、set类型
public UserInfo(Set<Date> times) {
for (Date date : times) {
System.out.println(date);
}
}
//6、map类型
public UserInfo(Map<String,Integer> peoples) {
for (Entry<String, Integer> people : peoples.entrySet()) {
System.out.println(people);
}
}
//7、Properties类型
public UserInfo(Properties properties) {
System.out.println(properties.getProperty("driver"));
System.out.println(properties.getProperty("url"));
System.out.println(properties.getProperty("username"));
System.out.println(properties.getProperty("password"));
}
}
此时需要勾选context:
xml文件配置如下,为构造方法赋值需要使用constructor-arg标签,具体如下:
<!-- 1、普通类型 -->
<bean class="com.jd.vo.UserInfo">
<constructor-arg name="name" value="Tim"></constructor-arg>
<constructor-arg type="int" value="20"></constructor-arg>
</bean>
<!-- 2、自定义类型,使用ref标签属性,ref标签的属性值为id或者name -->
<bean id="date" class="java.util.Date"></bean>
<bean class="com.jd.vo.UserInfo">
<constructor-arg ref="date"></constructor-arg>
</bean>
<!-- 3、数组类型,使用array子标签 -->
<bean class="com.jd.vo.UserInfo">
<constructor-arg>
<array>
<value>120</value>
<value>110</value>
<bean class="java.lang.String">
<constructor-arg value="119"></constructor-arg>
</bean>
</array>
</constructor-arg>
</bean>
<!-- 4、list类型,使用list子标签 -->
<bean class="com.jd.vo.UserInfo">
<constructor-arg>
<list>
<value>111</value>
</list>
</constructor-arg>
</bean>
<!-- 5、set类型,使用set子标签 -->
<bean class="com.jd.vo.UserInfo">
<constructor-arg>
<set>
<ref bean="date"/>
<bean class="java.util.Date"></bean>
</set>
</constructor-arg>
</bean>
<!-- 6、map类型,使用map子标签 -->
<bean id="ui" name="u,i,userinfo" class="com.jd.vo.UserInfo">
<constructor-arg>
<map>
<entry key="小明" value="12"></entry>
<entry key="小刚" value-ref="13"></entry>
</map>
</constructor-arg>
</bean>
<!-- 7、Properties类型,使用props子标签 -->
<bean class="com.jd.vo.UserInfo">
<constructor-arg>
<props>
<prop key="driver">com.mysql.jdbc.driver</prop>
<prop key="url">jdbc:mysql://127.0.0.1:3306/test</prop>
<prop key="username">root</prop>
<prop key="password">root</prop>
</props>
</constructor-arg>
</bean>
就此,完成赋值。
二、变量赋值:
变量赋值大体与构造方法一样,在配置时可以简便,勾选这三个:
提供变量的类Student.java为:
public class Student {
private List<Double> scores;
private Date birth;
private Map<String,String> map;
private Properties properties;
public Properties getProperties() {
return properties;
}
public void setProperties(Properties properties) {
this.properties = properties;
}
public List<Double> getScores() {
return scores;
}
public void setScores(List<Double> scores) {
this.scores = scores;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
public Map<String, String> getMap() {
return map;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
}
则配置可以简化为:
<bean id="date" class="java.util.Date"></bean>
<util:list id="list">
<value>110</value>
<value>120</value>
</util:list>
<util:map id="map">
<entry key="小米" value="120"></entry>
<entry key="小刚" value-ref="123"></entry>
</util:map>
<util:properties id="prop">
<prop key="driver">com.mysql.jdbc.driver</prop>
<prop key="url">jdbc:mysql://127.0.0.1:3306/test</prop>
<prop key="username">root</prop>
<prop key="password">root</prop>
</util:properties>
<bean class="com.jd.vo.Student"
p:scores-ref="list"
p:birth-ref="date"
p:map-ref="map"
p:properties-ref="prop"></bean>
就此,完成变量赋值,调用相应的get方法即可获得值。