プロデューサー メソッドは、インスタンスをプログラムで作成し、コンテキストで公開する場合に非常に便利です。問題は、プロデューサー メソッドによって作成され、返されるインスタンスのすべてのプロパティが、new
CDI によって注入されないことです。Weld のドキュメントでは、これは意図的な動作であると読みましたが、多くの場合、これらの Bean への注入は非常に便利です。
そのような Bean へのインジェクションを有効にする回避策はありますか?
プロデューサー メソッドは、インスタンスをプログラムで作成し、コンテキストで公開する場合に非常に便利です。問題は、プロデューサー メソッドによって作成され、返されるインスタンスのすべてのプロパティが、new
CDI によって注入されないことです。Weld のドキュメントでは、これは意図的な動作であると読みましたが、多くの場合、これらの Bean への注入は非常に便利です。
そのような Bean へのインジェクションを有効にする回避策はありますか?
まず、インジェクションが必要な Bean にプロデューサーを使用している理由を尋ねなければなりません。
それはさておき、BeanManager から新しいインスタンスを作成する必要があります。https://github.com/apache/incubator-deltaspike/blob/master/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/provider/BeanProvider.java#をご覧ください。いくつかのアイデアについてはL115 (単に BeanManager をパラメータとして Producer メソッドに挿入し、同じコードを実行できます)。