CDI构造函数注入请求范围对象

时间:2013-04-02 14:25:01

标签: java-ee-6 cdi

是否可以通过构造注入将请求范围的CDI组件注入到应用程序范围的CDI组件中?关键是,当实例化应用程序范围对象时,请求范围对象可能不存在。

2 个答案:

答案 0 :(得分:2)

您可以自由地执行此操作,您将获得一个代理注入,以便在您调用业务方法时获取/创建相应的实例。

答案 1 :(得分:0)

这是不可能的。您只能注入相同或更大范围的bean。否则你会遇到像你提到的那样的问题 - 范围较窄的bean可能不存在。

然而,您可以使用BeanManagerInstance interface以编程方式访问,迭代和过滤可用的bean:

@Inject @Any
private Instance<MyBean> myBeans;
...
for (MyBean bean : myBeans){...}
相关问题