一、自定义FactoryBean
自定义的 FactoryBean要实现Spring提供的FactoryBean接口
public class
CarFactoryBean
implements
FactoryBean
{
private String brand ;
public void setBrand ( String brand ) {
this . brand = brand ;
}
//返回Bean的对象
public Object getObject () throws Exception {
return new Car ( brand , 500000 ) ;
}
//返回Bean的类型
public Class <?> getObjectType () {
return Car . class ;
}
//是否是单例
public boolean isSingleton () {
return true ;
}
}
private String brand ;
public void setBrand ( String brand ) {
this . brand = brand ;
}
//返回Bean的对象
public Object getObject () throws Exception {
return new Car ( brand , 500000 ) ;
}
//返回Bean的类型
public Class <?> getObjectType () {
return Car . class ;
}
//是否是单例
public boolean isSingleton () {
return true ;
}
}
二、Spring文件配置
通过FactoryBean来配置Bean的实例
Class:指向FactoryBean的全类名
property:配置FactoryBean的属性
但实际返回的实例却是FactoryBean的getObject()方法返回的实例
<
bean
id
="car"
class
="factorybean.CarFactoryBean"
>
< property name ="brand" value ="BMW" ></ property >
</ bean >
< property name ="brand" value ="BMW" ></ property >
</ bean >