FactoryBean是Spring框架中的一个接口,用于定制化地实例化Bean
。通过实现FactoryBean接口,可以控制Bean的创建过程,实现更加灵活的Bean实例化方式。
自定义的FactoryBean:
public class MyBean implements FactoryBean<MyBean> {
private String name;
public void setName(String name) {
this.name = name;
}
@Override
public MyBean getObject() throws Exception {
MyBean myBean = new MyBean();
myBean.setName(name);
return myBean;
}
@Override
public Class<?> getObjectType() {
return MyBean.class;
}
@Override
public boolean isSingleton() {
return true;
}
}
MyBean 实现了FactoryBean接口,通过getObject()方法控制Bean的实例化过程。在Spring配置文件中,可以这样声明一个FactoryBean:
<bean id="myBeanFactory" class="com.example.MyBean">
<property name="name" value="CustomBean"/>
</bean>
通过配置文件中的声明,Spring容器会实例化 MyBean 并调用getObject()方法返回一个MyBean对象。