beanManager.getBeans(abc.class,new AnnotationLiteral
返回CDI 1.0中的结果集,但不会在CDI 1.2中返回结果。
是否需要进行任何更改?
答案 0 :(得分:1)
CDI 1.2引入了一些major changes related to the bean discovery mode。这可能是您的问题的原因。
自CDI 1.2起,bean discovery mode默认为annotated
,允许在没有beans.xml
文件的Java EE 7中默认激活CDI。
请参阅以下引言,该引言解释了自CDI 1.2以来如何定义bean:
2.5.1. Bean defining annotations
bean类可以有一个定义注释的bean,允许它 放置在应用程序中的任何位置,如Bean Archives中所定义。一个豆子 具有bean定义注释的类被称为隐式bean。
定义注释的bean集包含:
@ApplicationScoped
,@SessionScoped
,@ConversationScoped
和@RequestScoped
注释,所有其他正常范围类型,
@Interceptor
和@Decorator
注释,所有刻板印象注释(即用注释注释的注释)
@Stereotype
),和
@Dependent
范围注释。