【发布时间】:2011-07-21 21:03:59
【问题描述】:
我试图理解 javax.inject 包,但我不清楚 javax.inject.Named 注释应该用于什么。 Javadoc 没有解释其背后的想法。
Javadoc 位于 http://download.oracle.com/javaee/6/api/javax/inject/Named.html
我正在使用 Spring 3.0 编写一些示例程序,通过将 @Named 放在 bean 上似乎将其添加到 bean 工厂但 Javadoc 描述如此简单,我无法分辨如果这是标准行为或 Spring 特定行为。
我的问题是:
-
@Named和@Qualifier有什么区别 - 你应该如何告诉运行时系统一个类应该可以注入到其他类中的注解是什么?相当于 Spring 中的
@Component?
更新 1 在关于 @Named 和 @Qualifier https://dzone.com/articles/java-ee6-cdi-named-components 的好文章中对 @Named 和 @Qualifier 有很好的解释,感谢 @xmedeko 链接到它下面的评论。
【问题讨论】:
-
JSR-330 的配置超出规范,即容器特定。
-
根据 Spring 文档“JSR 330 的 @Named 注释可用作检测组件并为它们提供名称的方法。如果您启用了 JSR 330 JAR,则会自动启用此行为类路径。”这种行为是 Spring 独有的还是所有理解 @Named 的容器独有的?
标签: java spring dependency-injection java-ee-6