是否有可能在运行时检测CDI托管bean的范围?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否有可能在运行时检测CDI托管bean的范围?相关的知识,希望对你有一定的参考价值。

是否有可能在运行时检测CDI托管bean的范围?

答案

您可以注入BeanManager并查询您的bean定义:

@Inject
BeanManager beanManager;
...
Class<? extends Annotation> scope = beanManager.getBeans(MyClass.class,MyOptionalQualifier1.class).iterator().next().getScope();
if(scope.isAssignableFrom(RequestScoped.class))
...

以上是关于是否有可能在运行时检测CDI托管bean的范围?的主要内容,如果未能解决你的问题,请参考以下文章

在会话作用域的JSF支持bean中观察CDI事件

是否在会话范围的 JSF 支持 bean 中观察到 CDI 事件

CDI 托管 bean 和 JSF 托管 bean 可以相互通信吗?

除非显式注释,否则不会发现 CDI bean

命名 CDI bean 的默认范围是啥?

java.lang.IllegalArgumentException:WFLYWELD0037:将持久性单元注入 CDI 托管 bean 时出错