beanManager.getBeans在CDI 1.0和CDI 1.2中的工作方式有什么区别吗?

时间:2018-05-28 12:05:30

标签: cdi vaadin7

beanManager.getBeans(abc.class,new AnnotationLiteral

返回CDI 1.0中的结果集,但不会在CDI 1.2中返回结果。

是否需要进行任何更改?

1 个答案:

答案 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范围注释。

  •