一、用构造器实例化
首先创建实体类 (AdressBean ,OrderBean)因为要用到数据拼接所以创建两个。
public class AdressBean {
private Integer aid;
private String adress;
public AdressBean() {
super();
// TODO Auto-generated constructor stub
}
public AdressBean(Integer aid, String adress) {
super();
this.aid = aid;
this.adress = adress;
}
public Integer getAid() {
return aid;
}
public void setAid(Integer aid) {
this.aid = aid;
}
public String getAdress() {
return adress;
}
public void setAdress(String adress) {
this.adress = adress;
}
@Override
public String toString() {
return "AdressBean [aid=" + aid + ", adress=" + adress + "]";
}
//静态工厂方法实例化要用到的
public static AdressBean factory() {
return new AdressBean();
}
//实例方法实例化要用到的
public AdressBean getfactory() {
return new AdressBean();
}
public class OrderBean {
private Integer oid;
private String name;
private AdressBean adress;
public AdressBean getAdress() {
return adress;
}
public void setAdress(AdressBean adress) {
this.adress = adress;
}
public OrderBean() {
super();
// TODO Auto-generated constructor stub
}
public OrderBean(Integer oid, String name, AdressBean adress) {
super();
this.oid = oid;
this.name = name;
this.adress = adress;
}
public Integer getOid() {
return oid;
}
public void setOid(Integer oid) {
this.oid = oid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "OrderBean [oid=" + oid + ", name=" + name + ", adress=" + adress + "]";
}
public static OrderBean factory() {
return new OrderBean();
}
public OrderBean getfactory() {
return new OrderBean();
}
接下来为spring.xml中的配置
<!-- 依赖注入1.set方法实例化 -->
<bean id="order" class="org.hopu.bean.OrderBean">
<property name="oid" value="1"></property>
<property name="name" value="小可爱"></property>
<property name="adress" ref="adress"></property>
</bean>
<bean id="adress" class="org.hopu.bean.AdressBean">
<property name="aid" value="131"></property>
<property name="adress" value="河南教育学院"></property>
</bean>
<!-- 接下来为构造方法实例化,实体类中一定要有**构造方法**-->
<bean id="order1" class="org.hopu.bean.OrderBean">
<constructor-arg index="0" value="2"></constructor-arg>
<constructor-arg index="1" value="小心心"></constructor-arg>
<!-- 此处为拼接数据 -->
<constructor-arg index="2" ref="adress1"></constructor-arg>
</bean>
<bean id="adress1" class="org.hopu.bean.AdressBean">
<constructor-arg index="0" value="131"></constructor-arg>
<constructor-arg index="1" value="金水区"></constructor-arg>
</bean>
通过测试得出
public void test() {
ApplicationContext context =
new ClassPathXmlApplicationContext("test.xml");
Object o = context.getBean("order");
System.out.println(o);
}
二、静态工厂实例化
通过在实体类中定义的静态方法
<!-- 静态工厂实例化 -->
<bean id="order2" class="org.hopu.bean.OrderBean" factory-method="factory">
<property name="oid" value="3"></property>
<property name="name" value="比心心"></property>
<!-- 此处为拼接数据 -->
<property name="adress" ref="adress2"></property>
</bean>
<bean id="adress2" class="org.hopu.bean.AdressBean" factory-method="factory">
<property name="aid" value="131"></property>
<property name="adress" value="郑州市"></property>
</bean>
测试方法同上,我在这里就不贴了
三、实例工厂实例化
通过实体类中定义的方法
<!-- 实例工厂实例化 -->
<bean id="order3" class="org.hopu.bean.OrderBean"></bean>
<bean id="order3.1" factory-bean="order3" factory-method="getfactory">
<property name="oid" value="4"></property>
<property name="name" value="啦啦啦"></property>
<!-- 此处为拼接数据 -->
<property name="adress" ref="adress3.1"></property>
</bean>
<bean id="adress3" class="org.hopu.bean.AdressBean"></bean>
<bean id="adress3.1" factory-bean="adress3" factory-method="getfactory">
<property name="aid" value="131"></property>
<property name="adress" value="河南省"></property>
</bean>
以上为spring实例化的三种方式。