Search code examples
jakarta-eecdi

is it possible to detect a CDI managed bean's scope at runtime?


is it possible to detect a CDI managed bean's scope at runtime?


Solution

  • You can inject the BeanManager and query your bean definition:

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