首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >javax.inject.Named注解应该用来做什么?

javax.inject.Named注解应该用来做什么?
EN

Stack Overflow用户
提问于 2011-03-24 13:46:19
回答 4查看 173.8K关注 0票数 128

我正在尝试理解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

  • How和,
  1. @Named之间的区别是什么?Spring中的@Component等价物??

更新1在尼斯有一篇关于@Named@Qualifier的很好的解释,关于@Named@Qualifier https://dzone.com/articles/java-ee6-cdi-named-components感谢@xmedeko链接到下面的评论。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-03-24 13:54:35

使用@Named来区分绑定在相同作用域中的相同类型的不同对象之间的。

代码语言:javascript
复制
@Named("maxWaitTime")
public long maxWaitTimeMs;

@Named("minWaitTime")
public long minWaitTimeMs;

如果没有@Named限定符,注入器将不知道将哪个long绑定到哪个变量。

  • 如果要创建行为类似于@Named的批注,请在创建批注时使用@Qualifier批注。
  • 如果您查看@Named,它本身将使用@Named进行批注
票数 96
EN

Stack Overflow用户

发布于 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

票数 69
EN

Stack Overflow用户

发布于 2011-03-24 22:04:42

关于#2,根据JSR-330规范:

这个包提供了支持可移植类的依赖注入注解,但它将外部依赖项配置留给了注入器实现。

因此,由提供程序决定哪些对象可用于注入。在Spring的情况下,它都是Spring bean。在使用AnnotationConfigApplicationContext时,使用JSR-330注释的任何类都会自动添加为Spring beans。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5415261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档