为什么bean-discovery-mode="annotated"
不会扫描带有某些刻板印象的bean,例如@Model
- 我只是尝试了这种方式,这样注释的类没有被CDI拾取所以我不得不改变模式回到all
。这是一个错误(因为例如@Model
有一个范围)或者这是设计吗?
答案 0 :(得分:3)
使用CDI 1.1中的bean-discovery-mode="annotated"
,只有使用 bean定义注释的bean注释的bean被CDI选为bean。这在CDI 1.1 specification, chapter 2.5中有所描述。从那里可以看出,构造型是不包含在bean定义注释的集合中。只有范围类型是bean定义。
@Model
注释是内置的CDI构造型。因此,在CDI 1.1中,注释bean @Model
不足以在annotated
发现模式中发现它。
然而,这将随着CDI 1.2(chapter 2.5.1)而改变,其中构造型 被认为是bean定义注释。