【问题标题】: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 {

【问题讨论】:

  • Cdi 在 javaee-5 中不存在

标签: java dependency-injection cdi


【解决方案1】:

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

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

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

【讨论】:

  • 类名中首字母小写(甚至更复杂的逻辑)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-06
  • 1970-01-01
相关资源
最近更新 更多