私たちはjavaでplay2.5を使用しています。私はカスタムクラス、すなわちクラスAを持っています。このクラスでは、DIクラスを通してカスタムクラスAのプロパティとしてWSClientオブジェクトを注入しています。このカスタムクラスAの複数のインスタンスを作成するので、カスタムクラスAの新しいインスタンスごとにWSClientの新しいインスタンスが作成されます。我々の要件は、カスタムクラスAの複数のインスタンスの中にWSClientのインスタンスが1つだけあることです。そのため、WSClientのプロパティの上にjavax.injectという@ Singletonアノテーションを使用しました。しかし、それはシングルトンのインスタンスを作成しません、私はいつでも私はカスタムクラスAをinstathiateするたびにWSClientの新しいインスタンスを作成します。私のカスタムクラスAでWSClientの単一のインスタンスを作成するいくつかのゾルを提案することができますか?カスタムクラスの単一のWSClientオブジェクトをplay-2.5のDIを通じてそのカスタムクラスのプロパティとして作成する必要があります。
class A {
private final WSRequest holder;
@Singleton
public WSClient wsClient = Play.current().injector().instanceOf(WSClient.class);
A(String url) {
holder = wsClient.url(url);
}
}
このクラス以外でwsclientシングルトンを作成し、それを使用することができますこのクラスの中で。 autowire機能を持つSpringフレームワークシングルトンBeanに似ています。 – notionquest