通常在引用第三方框架时,用静态工厂,FactoryBean等方法比较多。
自己内部使用直接可以用类本身来实例化即可。
<constructor-arg value="qq"></constructor-arg> <!--给静态方法getCar传递参数-->
</bean>
<bean id="car" factory-bean="carfactory" factory-method="getCar">
<constructor-arg value="qq"></constructor-arg> <!--给非静态的工厂方法getCar传递参数-->
</brean>
自己内部使用直接可以用类本身来实例化即可。
1.通过静态方法构造bean
<bean id="car" class="spring.StaticCarFactory" factory-method="getCar"><constructor-arg value="qq"></constructor-arg> <!--给静态方法getCar传递参数-->
</bean>
2.实例工厂方法构造bean
<bean id="carfactory" class="spring.CarFactory"/><bean id="car" factory-bean="carfactory" factory-method="getCar">
<constructor-arg value="qq"></constructor-arg> <!--给非静态的工厂方法getCar传递参数-->
</brean>
3.通过FactoryBean来实现
Bean的类如下:public class CarFactoryBean implements FactoryBean{
//返回该工厂创建的Bean实例。
@Override
public Object getObject() throws Exception {
return new Car();
}
//返回该工厂创建的Bean的类型
@Override
public Class getObjectType() {
return Car.class;
}
//定义通过该工厂创建的bean是否是单例
@Override
public boolean isSingleton() {
return true;
}
}
通过xml文件配置生成bean
<bean id="car" class="spring2.CarFactoryBean"/>
<完>