私は手動で初期化したオブジェクト(レガシーコード)を持っています。 私はこのオブジェクトをアプリケーションコンテキストに置いてCDIで利用できるようにしたいと思っています。CDI:既存のオブジェクトをアプリケーションスコープに入れるにはどうすればいいですか?
CDI拡張機能を作成しないとどうすればいいですか?
私は手動で初期化したオブジェクト(レガシーコード)を持っています。 私はこのオブジェクトをアプリケーションコンテキストに置いてCDIで利用できるようにしたいと思っています。CDI:既存のオブジェクトをアプリケーションスコープに入れるにはどうすればいいですか?
CDI拡張機能を作成しないとどうすればいいですか?
プロデューサを使用します。あなたのクラスのインスタンスである@Produces
を作ります。
このようなものが必要ですか?
@ApplicationScoped
public class ApplicationScopedClass {
@Produces
public static ApplicationScopedClass makeAnInstance() {
return new ApplicationScopedClass();
}
}
'@Produduces'メソッドを' @ Inject'と同じBeanに置くことをお勧めしますか?循環依存を作成せずにこれを達成するために初期化を何とか遅らせることができますか? 'Instance <...>'がありますが、実際のbeanを保持するためにもう1つのフィールドを作成する必要があります。 –
循環依存関係はどのように表示されますか?プロデューサーは通常、消費者に依存していません – Bozho
次に、 'this.foo = new Foo(this)'をCDI化するにはどうしたらいいですか? –