当我们在Spring中使用第三方类库,但是Spring官方又没有提供相应的集成jar包,而我们又希望Spring能够管理它时,此时可以通过实现FactoryBean接口来达到这个目的。为了Spring能够控制第三方类对象的生命周期,我们还可以实现InitializingBean和DisposableBean接口,或者通过在bean注册时声明初始化(init-method)和结束(destroy-method)方法实现。
下面以elasticsearch的TransportClient对象为例,使Spring简单集成5.x版本的transportClient:
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.FactoryBean;