Ant*_* O. 5 cdi java-ee-6 jboss-weld
我想知道RequestScoped
上下文当前是否在方法中处于活动状态.
目前,我在做什么:
@Inject private BeanManager beanManager;
public boolean isRequestScopeActive() {
try {
if (beanManager.getContext(RequestScoped.class).isActive()) {
return true;
} else {
return false;
}
} catch (final ContextNotActiveException e) {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我认为,ContextNotActiveException
只要了解范围是否有效,我就会有点沉重.
您有没有更好的方法来了解CDI中的上下文的状态(活动与否)?
不,我们在 CDI 1.0 中唯一的选择是捕获 ContextNotActiveException。
您的解决方案应该有效。
这实际上最终成为一个问题,因为范围实现不可用于注入。
例如,您不能只@Inject RequestScopedContextImpl rq;
检查rq.isActive()
方法,因为在不知道 CDI 本身的实现细节的情况下我们无法访问该类。
归档时间: |
|
查看次数: |
1487 次 |
最近记录: |