Para que tu ejemplo tenga mas sentido, necesitarías implementar otra anotación (por ejemplo @Formal) y otra clase que implemente la interfaz Greeting. Por ejemplo:
@Qualifier
@Retention(RUNTIME)
@Target({TYPE, METHOD, FIELD, PARAMETER})
public @interface Formal {}
@Formal
public class FormalGreeting extends Greeting { ... }
y ahora en tu aplicación puedes usar:
@Inject
@Formal
private Greeting greeting1;
@Inject
@Informal
private Greeting greting2;
De esta manera, el framework CDI sabe que debe crear una instancia de la clase "FormalGreeting" para inyectarla en "greeting1" y una instancia de "InformalGreeting" para inyectarla en "greeting2".
¿Cómo ves?
Estimados,
Buenas tardes. Les escribo desde Argentina y éste es mi primer POST.
Alguien me podría explicar para qué sirve @Qualifier y definir nuevas Annotations en CDI. No me cierra el concepto. Viendo el tutorial de JEE encontré éstos ejemplos:
@Qualifier
@Retention(RUNTIME)
@Target({TYPE, METHOD, FIELD, PARAMETER})
public @interface Informal {}
@Informal
public class InformalGreeting extends Greeting {
public String greet(String name) {
return "Hi, " + name + "!";
}
}
import javax.inject.Inject;
public class Printer {
@Inject @Informal Greeting greeting;
..
}
Pero aún no logro ver cuál es su función.
Desde ya muchas graicas!.