在调用必须将新实例作为参数传递的 Java 方法时,这个新实例怎么可能由 CDI 容器创建?
在以下示例中:我正在向异步 servlet 上下文添加一个侦听器:
@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
});
// ...
}
}
因此,我希望它由 CDI 容器创建,而不是手动执行这个新的 AsyncListener() 实例化。
当然,我希望每个 aync 上下文都有自己的侦听器实例,否则我只会注入一个带有 @Inject 的 AsyncListener 作为 servlet 类的字段。
目前,找不到任何方法来做到这一点。有人有想法可以分享吗?