Bean的实例化方式
1.构造方法实例化
默认直接调用bean的无参构造方法实例化
<bean id="orderServiceBean" class="com.lxy.spring.orderService" />
2.简单工厂模式实例化
orderFactory类如下
public class orderFactory{
public static order get(){
return new order();
}
}
设置factory-method
属性为简单工厂类中的静态方法名
<!--factory-method表示简单工厂中的静态方法-->
<bean id="orderFactoryBean" class="com.lxy.spring.orderFactory" factory-method="get"/>
3.通过factory-bean实例化
具体工厂类:
public class orderFactory extends AbstractFactory{
public order get(){
return new order();
}
}
工厂方法模式需要先实例化具体工厂,才能调用对应的生产方法,因此xml配置与简单工厂不同,需要用到factory-bean
和factory-method
<bean id="orderFactory" class="com.lxy.spring.orderFactory"/>
<bean id="order" factory-bean="orderFactory" factory-method="get"/>
4.通过FactoryBean接口实例化
Order类
public class Order{
public Order(){
System.out.println("创建order");
}
}
OrderFactoryBean 类
public class OrderFactoryBean implements FactoryBean<Order>{
@Override
public Order getObject() throws Exception{
return null;
}
@Override
public Class<?> getObjectType(){
return null;
}
}
配置xml
<bean id="order" class="com.lxy.spring.OrderFactoryBean"/>