Spring中有两种类型的Bean,一种是普通Bean,另一种是工厂Bean即FactoryBean
工厂Bean和普通Bean不同,其返回的对象不是指定类的一个实例,其返回的是该工厂Bean的getObject方法
示例代码如下:
//先准备一个Address类
public class Address {
private String city;
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public Address(String city) {
super();
this.city = city;
}
public Address() {
}
@Override
public String toString() {
return "Address [city=" + city + "]";
}
}
//FactoryBean工厂Bean
public class AddressBeanFactory implements FactoryBean<Address>{
private String city;
public void setCity(String city) {
this.city = city;
}
//FactoryBean返回的实例
@Override
public Address getObject() throws Exception {
return new Address(this.city);
}
//FactoryBean返回的类型
@Override
public Class<?> getObjectType() {
return Address.class;
}
//FactoryBean返回的实例是否为单例
@Override
public boolean isSingleton() {
return true;
}
}