一、无参构造方法
package com.jd.vo;
public class Student {
public Student() {
System.out.println("Student");
}
}
默认情况下,使用无参构造函数实例化对象。
<bean class="com.jd.vo.Student"></bean>
二、参数为基本数据类型或String类型
package com.jd.vo;
public class Student {
public Student(int age,String name) {
System.out.println(age+","+name);
}
}
使用constructor-arg子标签配置一个参数列表中的参数值,通过value赋值,通过name,index,type区分参数。
<bean class="com.jd.vo.Student">
<constructor-arg name="age" value="12"></constructor-arg>
<constructor-arg name="name" value="Jack"></constructor-arg>
</bean>
三、参数为引用类型
package com.jd.vo;
public class Student {
public Student(Date birth){
System.out.println(birth);
}
}
使用constructor-arg子标签配置一个参数列表中的参数值,通过ref赋值。
<bean name="date" class="java.util.Date"></bean>
<bean class="com.jd.vo.Student">
<constructor-arg ref="date"></constructor-arg>
</bean>-->
四、参数为List集合
package com.jd.vo;
public class Student {
public Student(List<String> names){
for (String name:names) {
System.out.println(name);
}
}
}
使用constructor-arg子标签下的list标签配置集合内参数值,若参数为基本数据类型或String类型,则可用value赋值;若参数为引用类型,则可用ref赋值;又因为基本数据类型或String类型可看作引用类型,则亦可类比。
<bean name="n" class="java.lang.String">
<constructor-arg value="Mike"></constructor-arg>
</bean>
<bean class="com.jd.vo.Student">
<constructor-arg>
<list>
<value>Tom</value>
<bean class="java.lang.String">
<constructor-arg value="Jimmy"></constructor-arg>
</bean>
<ref bean="n"></ref>
</list>
</constructor-arg>
</bean>
五、参数为数组
package com.jd.vo;
public class Student {
public Student(int [] scores){
for (int score:scores) {
System.out.println(score);
}
}
}
使用constructor-arg子标签下的array标签配置数组内参数值,若参数为基本数据类型或String类型,则可用value赋值;若参数为引用类型,则可用ref赋值;又因为基本数据类型或String类型可看作引用类型,则亦可类比。
<bean name="s" class="java.lang.Integer">
<constructor-arg value="92"></constructor-arg>
</bean>
<bean class="com.jd.vo.Student">
<constructor-arg>
<array>
<value>88</value>
<bean class="java.lang.Integer">
<constructor-arg value="95"></constructor-arg>
</bean>
<ref bean="s"></ref>
</array>
</constructor-arg>
</bean>
六、参数为Set集合
package com.jd.vo;
public class Student {
public Student(Set<Integer> mobile){
for (int mob:mobile) {
System.out.println(mob);
}
}
}
使用constructor-arg子标签下的set标签配置数组内参数值,若参数为基本数据类型或String类型,则可用value赋值;若参数为引用类型,则可用ref赋值;又因为基本数据类型或String类型可看作引用类型,则亦可类比。
<bean name="m" class="java.lang.Integer">
<constructor-arg value="112"></constructor-arg>
</bean>
<bean class="com.jd.vo.Student">
<constructor-arg>
<set>
<value>110</value>
<bean class="java.lang.Integer">
<constructor-arg value="119"></constructor-arg>
</bean>
<ref bean="m"></ref>
</set>
</constructor-arg>
</bean>
七、参数为Map集合
package com.jd.vo;
public class Student {
public Student(Map<String,String> stu){
Set<String> set = stu.keySet();
for (String key:set) {
System.out.println(key+","+stu.get(key));
}
}
}
使用constructor-arg子标签下的map标签配置数组内参数值,通过entry标签给key和value赋值;若参数为引用类型,则可用key-ref给key赋值,value-ref给value赋值。
<bean name="k" class="java.lang.String">
<constructor-arg value="Marry"></constructor-arg>
</bean>
<bean name="v" class="java.lang.String">
<constructor-arg value="15"></constructor-arg>
</bean>
<bean class="com.jd.vo.Student">
<constructor-arg>
<map>
<entry key="Kate" value="12"></entry>
<entry key-ref="k" value-ref="v"></entry>
</map>
</constructor-arg>
</bean>
九、参数为Properties类型
package com.jd.vo;
public class Student {
public Student(Properties properties){
String name = properties.getProperty("name");
String age = properties.getProperty("age");
System.out.println(name+","+age);
}
}
使用constructor-arg子标签下的props标签配置数组内参数值,通过prop标签给指定的key赋值。
<bean class="com.jd.vo.Student">
<constructor-arg>
<props>
<prop key="name">Nancy</prop>
<prop key="age">23</prop>
</props>
</constructor-arg>
</bean>
若其中一key的值为数组类型或引用,则使用array标签或ref标签类比赋值。
<bean id="sc" class="java.lang.Integer">
<constructor-arg value="103"></constructor-arg>
</bean>
<bean class="com.jd.vo.Student">
<property name="name" value="Alex"></property>
<property name="scores">
<array>
<value>125</value>
<bean class="java.lang.Integer">
<constructor-arg value="114"></constructor-arg>
</bean>
<ref bean="sc"></ref>
</array>
</property>
</bean>