bean实例化的方式
程序员文章站
2022-05-23 18:30:54
...
1.构造方法实例化
可以是空构造方法
使用默认空构造方法,通过set/get赋值取值
定义一个car类
public class Car {
private String logo;
private String fadongji;
private String luntai;
public String getLogo() {
return logo;
}
public void setLogo(String logo) {
this.logo = logo;
}
public String getFadongji() {
return fadongji;
}
public void setFadongji(String fadongji) {
this.fadongji = fadongji;
}
public String getLuntai() {
return luntai;
}
public void setLuntai(String luntai) {
this.luntai = luntai;
}
@Override
public String toString() {
return "Car [logo=" + logo + ", fadongji=" + fadongji + ", luntai=" + luntai + "]";
}
}
bean的配置
<bean id="car" class="test.Car">
<property name="logo" value="tesila"></property>
<property name="luntai" value="miqilin"></property>
<property name="fadongji" value="tesila"></property>
</bean>
测试方法
public class Test {
public static void main(String[] args) {
ApplicationContext act = new ClassPathXmlApplicationContext("bean.xml");
Car car = (Car) act.getBean("car");
System.out.println(car.toString());
}
}
可以是有参构造方法
根据上面car类 ,加上有参构造方法
bean配置
<bean id="car" class="test.Car">
<constructor-arg index="0" value="maikailun"></constructor-arg>
<constructor-arg index="1" value="hongqi"></constructor-arg>
<constructor-arg index="2" value="tesila"></constructor-arg>
</bean>
2.静态工厂
定义一个工厂方法
public class Factory {
public static Users getUserStance() {
return new Users();
}
}
配置bean 实例化工厂方法
<bean id="users" class="test.Factory" factory-method="getUserStance"></bean>
3.非静态工厂
非静态的bean需要先实例化工厂方法 再调用实例化的factory
<bean id="factory" class="test.Factory"></bean>
<bean id="users" factory-bean="factory" factory-method="getUserStance"></bean>