2012-08-28 26 views
8

nuevo en CDI, quiero saber la diferencia práctica entre una alternativa y un calificador .CDI: @alternative vs @Qualifiers

en Weld reference, Es declaró que:

4,3. anotaciones calificador

Si tenemos más de un bean que implementa un tipo de grano en particular, el punto de inyección pueden especificar exactamente qué frijol se debe inyectar utilizando una anotación calificador.

pero al explicar las alternativas, se dice:

4,7. Alternativas

Las alternativas son beans cuya implementación es específica de un módulo de cliente particular o escenario de implementación.

Si entiendo bien, @Qualifier define qué implementaciones del bean objetivo se inyectan a los puntos de inyección.

por otro lado @Alternative describe un deseo durante la implementación que depende del cliente sobre si se inyecta o no una Alternación al estándar (el "@default" que quiero decir) en el punto de la inyección.

¿Es correcto?

+0

Eso es correcto. – dcernahoschi

Respuesta

2

Sí, así es. Puede imaginar calificadores como el tejido básico que configura en el momento del desarrollo, usando anotaciones en su código fuente.

Las alternativas le permiten sobrescribir esto en el momento de la ejecución utilizando el archivo beans.xml - un artefacto de implementación simple.

Un escenario típico sería utilizar diferentes beans.xml para diferentes entornos y, por lo tanto, habilitar alternativas ficticias para los componentes que no desea ejecutar en sus entornos locales/de integración.