新しいインスタンスをパラメーターとして渡す必要がある Java メソッドを呼び出す場合、この新しいインスタンスが CDI コンテナーによって作成される可能性はどのようにあるのでしょうか?
次の例では: リスナーを非同期サーブレット コンテキストに追加しています。
@WebServlet(value = "/example", asyncSupported = true)
public class ExampleServlet extends HttpServlet {
@Override
protected void doPost(final HttpServletRequest req,
final HttpServletResponse resp) throws ServletException,
IOException {
// ... some code
AsyncContext aCtx = req.startAsync(req, resp);
aCtx.addListener(**new AsyncListener()** {
// implementation of the async listener
});
// ...
}
}
したがって、この新しい AsyncListener() のインスタンス化を手動で実行する代わりに、CDI コンテナーによって作成されるようにしたいと考えています。
もちろん、すべての aync コンテキストに独自のリスナー インスタンスが必要です。それ以外の場合は、サーブレット クラスのフィールドとして @Inject を使用して AsyncListener を注入するだけです。
今のところ、これを行う方法が見つかりませんでした。誰かが共有するアイデアを持っていますか?