什么是FactoryBean
factoryBean 从名字上理解也能理解它就是一个Factory,然后作为Bean的形式的存在于Spring的BeanFactory,换句话说它就是一个起工厂作用的Bean。
FactoryBean有什么用
它的作用其实从名称上也能大概知道它的作用就是起一个工厂作用,就是使用了工厂模式,封装了创建对象的复杂过程,当所要创建的对象有复杂实例化过程代码,官网就推荐使用自定义FactoryBean的方式,把这个自定义的FactoryBean注入到容器中。
在大多数Spring集成其他框架时就是通过扩展这个FactoryBean的方式来用的, 比如集成Feign,Ribbon等框架,就目前来看这个FactoryBean的实现有超过50多个,所以当创建某些类复杂时,就可以利用自定义FactoryBean的这个Spring容器扩展点来做。
如何自定义FactoryBean
大概的过程分为两个一是实现Spring的FactoryBean接口,二是通知spring容器哪些类可由自定义的FactoryBean来创建对象,下面就是示例的代码
- FooFactoryBean.java
public class FooFactoryBean implements FactoryBean {
private static final Logger logger = LoggerFactory.getLogger(FooFactoryBean.class);
@Override
public Object getObject() throw