CDI发现模式注释不会扫描构造型bean

时间:2014-07-11 09:35:43

标签: java jsf cdi stereotype

为什么bean-discovery-mode="annotated"不会扫描带有某些刻板印象的bean,例如@Model - 我只是尝试了这种方式,这样注释的类没有被CDI拾取所以我不得不改变模式回到all。这是一个错误(因为例如@Model有一个范围)或者这是设计吗?

1 个答案:

答案 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定义注释。