【发布时间】:2015-07-29 15:16:12
【问题描述】:
我有一个关于使用@Specialization 的问题。按照 Java EE 6 或 7 教程的规定,如果我通过给它 @Specializes 注释来声明我的 bean,它将完全替换扩展我的 bean 的 bean。例如
public interface I {}
@Default @Q
public class A implements I {}
@Specializes
public class SpecA extends A {}
////
a) @Inject I a;
b) @Inject @Q I b;
将 SpecA 注入字段“a”和“b”就足够了吗? 我尝试在 glassfish 4.0 上运行此示例,但没有成功。
我在教程中读过奇怪的句子:
'通常,标有@Specializes 注释的bean 也是一个替代方案,并在beans.xml 文件中声明为替代方案。 '
我不明白我应该怎么做才能使其按照教程中的规定工作?我是否需要添加注释@Alternative 并将此类添加到beans.xml?或者我是否需要将我的 bean 添加到 beans.xml?
【问题讨论】: