CDI:@alternative vs @Qualifiers

时间:2012-08-28 19:57:23

标签: java dependency-injection cdi

是CDI的新手,我想知道替代方案和方案之间的实际区别 限定符。

Weld reference中,它声明:

  

4.3。限定符注释

     

如果我们有多个实现特定bean类型的bean,   注入点可以准确指定应注入哪个bean   使用限定符注释。

但在解释替代品时,据说:

  

4.7。替代

     

替代品是bean,其实现特定于a   特定客户端模块或部署方案。

如果我理解正确,@ Qualifier定义了目标bean的哪些实现被注入注入点。

另一方面,@ Alternative描述了在部署期间依赖于客户关于标准的Alternatice(我的意思是“@default”)是否被注入注入点的愿望。

是不是?

1 个答案:

答案 0 :(得分:2)

是的,没错。您可以将限定符想象为您在开发时使用源代码中的注释设置的基本编织。

替代方案允许您使用beans.xml文件(一个简单的部署工件)在执行时覆盖它。

典型的情况是对不同的环境使用不同的beans.xml,从而为您不希望在本地/集成环境中执行的组件启用模拟替代方案。