什么是javax.inject.named注释应该用于?
我想了解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关于@Named和@Qualifier http://java.dzone.com/articles/java-ee6-cdi-named-components的精彩解释,谢谢@xmedeko链接到它下面的评论。 
使用@Named来区分在同一范围内绑定的同一types的不同对象。
 @Named("maxWaitTime") public long maxWaitTimeMs; @Named("minWaitTime") public long minWaitTimeMs; 
如果没有@Name限定符,注入器将不知道要绑定哪个variables。
如果您要创build类似@Named的注释,请在创build批注时使用@Qualifier批注。 如果你看@Named,它本身是用@Qualifier注释的。
  @Inject而不是Spring的@Autowired注入一个bean。 
  @Name而不是Spring的@Component来声明一个bean。 
 这些JSR-330标准注释以Spring注释的相同方式进行扫描和检索(只要以下jar包含在classpath中) 
关于#2,根据JSR-330规格:
这个软件包提供了dependency injection注释来启用可移植类,但是它将外部依赖configuration留给注入器实现。
所以决定哪些对象可用于注入取决于提供者。 在spring的情况下,都是春豆。 当使用AnnotationConfigApplicationContext时,任何使用JSR-330批注注释的类都会自动添加为Spring bean。
@Named注释的主要作用是为了在应用程序中parsingEL语句,通常是通过JSF ELparsing器来定义bean。 注射可以通过使用名称来执行,但这不是CDI注射的工作原理,因为CDI为我们提供了一种更加丰富的方式来expression注射点和注入的豆类。