首页 > 解决方案 > 在没有任何价值的情况下使用 CDI @Named CDI 有什么意义吗?

问题描述

在没有值的情况下使用 CDI @Named 有什么意义吗?这不就等同于同时使用@Qualifier 和@Default 吗?

@Named
public class GifFileEditor implements ImageFileEditor {

标签: javadependency-injectioncdi

解决方案


如果我没记错的话,@Named没有value元素值,当应用于托管 bean 时,会做三件事:

  1. 它应用具有简单类名@Named有效的限定符。value
  2. 它将有beanName问题的 bean 设置为简单的类名。
  3. 它(是唯一的限定符)不会导致隐式@Default限定符被删除。

现在,如果您以编程方式应用它,例如使用 ,BeanConfigurator#addBean那么负责决定自己实现哪些行为。


推荐阅读