Bien, en el ejemplo anterior vimos la anotación Primary para marcar una clase como primaria para que
se pueda inyectar sin indicar el nombre del componente.
Pero qué pasa si quiero?
Quiero utilizar la mayoría de las veces el componente anotado con Primary, pero en una que otra parte
de nuestra aplicación utilizar la otra implementación.
Cómo lo hago para inyectarla si no es primaria?
Bueno, para eso utilizamos los calificadores o cualificar.
Entonces en el ejemplo, mi servicio complejo no es el primario, pero si mi servicio es tanto con primary,
pero quiero inyectar mi servicio complejo que no es por defecto.
Bueno, tiene un nombre mi servicio complejo.
Puedo inyectar a través del nombre.
Nos vamos al INDES Controller.
Nos vamos al atributo debajo del auto Weres.
Con cualificar importamos y con las comillas indicamos el nombre de componente que queremos inyectar.
Mi servicio complejo.
Esto permite seleccionar también a través del nombre para inyectar el componente específico que implementa
la interfaz.
Vamos a guardar.
Levantamos.
Vamos al navegador ejecutando un proceso importante, complicado.
Perfecto.
Ahora inyectó mediante el calificador a través del nombre.
Bien, esto se complementa bastante con Primary.
Por lo tanto, podemos tener un componente por defecto que se va a inyectar sin indicar el cual y fallar
sin indicar el nombre solamente con el auto widget y lo demás componentes concreto que queremos inyectar.
Tendríamos que indicar el nombre mediante el calificador.
Otra alternativa.
Bien, ahora también podría utilizar quali fallar sin usar la notación primary, como por ejemplo en
mi servicio.
Voy a comentar primare bueno y tengo que dar un nombre al componente que sea por defecto.
Por ejemplo, mi servicio principal, por ejemplo, este va a ser mi componente por defecto principal
o primario como le queramos llamar.
Entonces, siempre en los controladores y en la clase que utilicemos este componente siempre cliffhanger
apunta al nombre.
Mi servicio principal.
Entonces, si quiero hacer un switch entre un componente y otro, simplemente le cambio el nombre por
mi servicio principal.
Vamos a guardar y en el navegador va a inyectar mi servicio.
Actualizamos mi servicio simple.
Perfecto.
Ahora, si quiero hacer un switch a mi servicio complejo.
Bueno, tendría que renombrar los nombres del componente.
Por ejemplo, acá mi servicio complejo lo cambio por mi servicio principal y este mi servicio simple.
Entonces con este cambio inyectar mi servicio complejo, ya que es el principal con ese nombre.
Actualizamos algún proceso importante, complicado, que sería ahora nuestro principal.
Se fijan y no utilizamos la notación primary solamente auto whittier y qualy falla, pero siempre manteniendo
un nombre por defecto principal para nuestro servicio y renombrado según queramos que sea el componente
por defecto que vamos a inyectar en nuestro controladores o no ahora.
De todas formas, creo que utilizando Primary en combinación con cualificar es mucho mejor.
Marcamos Primary como por defecto tal como lo teníamos.
Y mantenemos los nombres de los componentes, cada uno de forma independiente
y en el controlador.
Quitamos el calificar, inyectamos el componente que está anotado con Primary guárdanos.
Entonces, para finalizar, hay diferentes combinaciones y soluciones para implementar lo mismo.
Por ahora nada más.
Nos vemos.