1. 通过构造方法来创建对象
- 通过参数名称设置
<!-- 通过构造方法来创建对象 --> <bean id="u1" class="cn.wh.vo.User"> <!-- constructor-arg设置构造方法的参数 name表示参数名称 value表示参数值 --> <constructor-arg name="name" value="张三疯"/> <constructor-arg name="age" value="218"/> </bean>
- 通过参数的类型来设置
<!-- 通过参数类型来设置 --> <bean id="u2" class="cn.wh.vo.User"> <!-- type表示参数类型 value表示参数值 --> <constructor-arg type="java.lang.String" value="张三疯"/> <constructor-arg type="int" value="218"/> </bean>
- 通过参数的下标来设置
<!-- 通过参数下标来设置 --> <bean id="u3" class="cn.wh.vo.User"> <!-- index表示参数下标 下标从0开始 --> <constructor-arg index="0" value="张三疯"/> <constructor-arg index="1" value="218"/> </bean>
-
通过无参构造方法来创建对象
<!-- 通过无参构造方法来创建对象 --> <bean id="u4" class="cn.wh.vo.User"> <property name="name" value="张三疯"/> <property name="age" value="218"/> </bean>
2.通过工厂来创建对象
- 静态工厂来创建对象
/** * * 静态工厂 */ public class UserFactory { public static User newInstance(String name,int age){ return new User(name,age); } }
配置:
<bean id="u5" class="cn.sxt.factory.UserFactory" factory-method="newInstance"> <constructor-arg index="0" value="张三疯"/> <constructor-arg index="1" value="218"/> </bean>
- 通过动态工厂来创建
/** * * 动态工厂 */ public class UserDynamicFactory { public User newInstance(String name,int age){ return new User(name,age); } }
配置:
<!-- 设置动态工厂 --> <bean id="factory" class="cn.sxt.factory.UserDynamicFactory"/> <bean id="u6" factory-bean="factory" factory-method="newInstance"> <constructor-arg index="0" value="张三疯"/> <constructor-arg index="1" value="218"/> </bean>