(Elasticsearch から) Client のインスタンスを作成する Bean を作成したいと考えています。ただし、以前にSpringでファクトリーBeanを構成したことがないので、読んだ直後に取得したのだろうか。close
接続は一度だけ開いて閉じる必要があるため、アプリケーションのシャットダウン時にメソッドを呼び出したいので、静的バージョンの代わりに factory-bean 属性を使用する必要があると思います。close
class 属性を使用したときにメソッドを呼び出すことができませんでした。
これは正しい使い方ですか?1 つのファクトリと 1 つの接続のみが必要であり、シャットダウン時にクライアントで close を呼び出したいと考えています。
<bean id="clientFactory" class="my.company.ClientFactory" destroy-method="close" />
<bean id="searchClient" factory-bean="clientFactory" factory-method="getClient" />
工場:
public class ClientFactory {
private Client client;
public Client getClient() {
if (client != null) {
return client;
}
Client transportClient = new TransportClient().addTransportAddress(new InetSocketTransportAddress("localhost", 9300));
client = transportClient;
return client;
}
public void close() {
client.close();
}
}