Estoy tratando de entender el javax.injectpaquete y no tengo claro para qué javax.inject.Namedse supone que se usa la anotación. El Javadoc no explica la idea que hay detrás.
Javadoc está en http://download.oracle.com/javaee/6/api/javax/inject/Named.html
Estoy usando Spring 3.0 para escribir algunos programas de muestra, al poner @Namedun bean parece agregarlo a la fábrica de frijoles, pero la descripción de Javadoc es tan ligera que no puedo decir si ese es el comportamiento estándar o el comportamiento específico de Spring.
Mis preguntas son:
- ¿Cuál es la diferencia entre
@Namedy@Qualifier - ¿Cómo se supone que le diga al sistema Runtime que una clase debe ser inyectable en otras clases cuál es la anotación para eso? ¿El equivalente de
@Componenten primavera?
En la Actualización 1 hay una excelente explicación @Namedy @Qualifieren el artículo de Niza sobre @Namedy @Qualifier https://dzone.com/articles/java-ee6-cdi-named-components gracias @xmedeko por vincularlo al comentario a continuación.

Respuestas:
Úselo
@Namedpara diferenciar entre diferentes objetos del mismo tipo enlazados en el mismo ámbito.Sin el
@Namedcalificador, el inyector no sabría qué largo enlazar a qué variable.Si desea crear anotaciones que actúen como
@Named, utilice la@Qualifieranotación al crearlas .Si miras
@Named, está anotado con@Qualifier.fuente
@Namedy@Qualifierjava.dzone.com/articles/java-ee6-cdi-named-components@Injecten lugar de Spring@Autowiredpara inyectar un bean.@Nameden lugar de Spring@Componentpara declarar un bean.Esas anotaciones estándar JSR-330 se escanean y recuperan de la misma manera que la anotación Spring (siempre que lo siguiente
jaresté en su ruta de clase)fuente
Con respecto al # 2, de acuerdo con la especificación JSR-330:
Por lo tanto, depende del proveedor determinar qué objetos están disponibles para la inyección. En el caso de Spring son todos los frijoles Spring. Y cualquier clase anotada con anotaciones JSR-330 se agrega automáticamente como Spring beans cuando se usa un AnnotationConfigApplicationContext.
fuente
La función principal de la anotación @Named es definir un bean con el propósito de resolver declaraciones EL dentro de la aplicación, generalmente a través de resolutores JSF EL. La inyección se puede realizar usando nombres, pero no era así como se suponía que funcionara la inyección en CDI, ya que CDI nos brinda una forma mucho más rica de expresar los puntos de inyección y los granos que se inyectarán en ellos.
fuente