【问题标题】:Is there any point of using CDI @Named CDI without any value?在没有任何价值的情况下使用 CDI @Named CDI 有什么意义吗?
【发布时间】:2020-01-30 16:58:58
【问题描述】:
在没有值的情况下使用 CDI @Named 有什么意义吗?这不就相当于同时使用@Qualifier 和@Default 吗?
@Named
public class GifFileEditor implements ImageFileEditor {
【问题讨论】:
标签:
java
dependency-injection
cdi
【解决方案1】:
如果我没记错的话,没有 value 元素值的 @Named 在应用于托管 bean 时会做三件事:
- 它将
@Named 限定符与简单类名的有效value 一起应用。
- 它将相关 bean 的
beanName 设置为简单的类名。
- 它(是唯一的限定符)不会导致隐式
@Default 限定符被删除。
现在,如果您以编程方式应用它,例如使用BeanConfigurator#addBean,那么您负责决定自己实现这些行为中的哪一个。