我正在尝试理解javax.inject
包,但我不清楚javax.inject.Named
注释应该用来做什么。Javadoc没有解释它背后的想法。
Javadoc在http://download.oracle.com/javaee/6/api/javax/inject/Named.html
我正在使用Spring3.0编写一些示例程序,通过将@Named
放在bean上,似乎可以将其添加到bean工厂,但是Javadoc描述太简单了,我不知道这是标准行为还是特定的行为。
我的问题是:
你应该告诉运行时系统一个类应该在其他类中注入吗,@Qualifier
@Named
之间的区别是什么?Spring中的@Component
等价物??更新1在尼斯有一篇关于@Named
和@Qualifier
的很好的解释,关于@Named
和@Qualifier
https://dzone.com/articles/java-ee6-cdi-named-components感谢@xmedeko链接到下面的评论。
发布于 2011-03-24 13:54:35
使用@Named
来区分绑定在相同作用域中的相同类型的不同对象之间的。
@Named("maxWaitTime")
public long maxWaitTimeMs;
@Named("minWaitTime")
public long minWaitTimeMs;
如果没有@Named
限定符,注入器将不知道将哪个long绑定到哪个变量。
@Named
的批注,请在创建批注时使用@Qualifier
批注。@Named
,它本身将使用@Named
进行批注发布于 2014-09-08 16:11:51
@Inject
而不是Spring的@Autowired
来注入bean。
@Named
而不是Spring的@Component
来声明一个bean。
这些Spring 330SpringJSR-330SpringJSR-330SpringJSR-330SpringJSR-330SpringJSR-330SpringJSR-330SpringJSR-330SpringJSR-330SpringJSR-330SpringJSR-330SpringJSR-330SpringJSR-330SpringJSR-330SpringJSR-330SpringJSR-330SpringJSR-330SpringJSR-330SpringJSR-330SpringJSR-330SpringJSR-330SpringJSR-330SpringJSR-330SpringJSR-330SpringJSR-330SpringJSR-330SpringJSR-330SpringJSR-330SpringJ
发布于 2011-03-24 22:04:42
关于#2,根据JSR-330规范:
这个包提供了支持可移植类的依赖注入注解,但它将外部依赖项配置留给了注入器实现。
因此,由提供程序决定哪些对象可用于注入。在Spring的情况下,它都是Spring bean。在使用AnnotationConfigApplicationContext时,使用JSR-330注释的任何类都会自动添加为Spring beans。
https://stackoverflow.com/questions/5415261
复制相似问题