Bienvenidos.
Vamos a ver otra forma de registrar componentes en el contenedor de Spring.
Una alternativa a utilizar component o la anotación servis.
Vámonos.
A mi servicio vamos a comentar para Daméry.
Component.
Vamos a guardar.
Vamos a ir a mi servicio complejo.
Íbamos a comentar component.
Ahora ambas clases son común y corriente.
No están manejadas por Spring, no están registradas en el contenedor, por lo tanto ahora ya no se
pueden inyectar.
Entonces la idea ver otra forma utilizando una clase de configuración de Spring anotada con configuration
para que sirva como una definición para crear componentes o beans de Spring mediante métodos y la anotación.
Vamos a ello en el paquete base donde está la clase principal.
Vamos a crear una nueva clase.
AB Koffi Finalizar, íbamos a decorar con Configuré hecho, importamos de Spring Framework bien y vamos
a tener métodos.
Estos métodos crean los componentes y retorna la instancia.
El objeto, por ejemplo, va retornar.
En este caso, la interfaz y servicio la vamos a importar.
Por ejemplo, registrar mi servicio
y crear mala instancia.
Con el operÃ horneo mi servicio.
Importamos bien para que se puedan registrar.
Entonces tenemos que utilizar.
La anotación Vint
y también le podemos dar opcionalmente, siempre y cuando tengamos más de una implementación de la interfaz
le podemos dar el nombre.
Por ejemplo.
Tal como lo hicimos en mi servicio.
Acá.
Mi servicio simple.
Y guardamos, guardamos mi servicio complejo con el comentario y el controlar va a inyectar el componente
que encuentre, que sea del tipo de esta interfaz, pero acá lo tenemos, lo estábamos registrando mediante
configuré y la anotación Vint, vamos a levantar.
Y probamos ejecutando un proceso importante, simple.
Perfecto, encontró el componente.
Qué pasa si comento Vinh?
Lo comentamos.
A que actualice.
Bueno, de partida lanzo un error.
Intenta inyectar un pin, pero no lo encuentra.
No está registrado, claro.
Justamente por el comentario.
Justamente porque comentamos el bit.
Bien, lo dejamos tal como está.
Ahora vamos a copiar el método.
Lo pegamos.
Ni servicio complejo.
Registrar mi servicio complejo.
Y creamos la instancia de mi servicio complejo.
Bien, ahora tenemos dos candidatos y los dos implementan la misma interfaz.
Básicamente lo mismo que vimos de la otra forma con la anotación component.
Vamos a guardar y va lanzar el error porque no sabe cuál inyectar.
Se fijan?
Hay dos candidatos, pero bien, también podemos marcar con Primary cualquiera de los dos.
Por ejemplo, quiero que mi servicio primario sea el complejo.
Guardamos.
Esperen a que se actualice.
Vamos al navegador.
inyectÃ el proceso complicado.
Perfecto.
Volvemos.
Quitamos el primary.
Lo inyectamos.
Acá guardamos.
Ahora inyecta el simple.
Actualizamos.
Perfecto.
Simple.
También podemos usar el cualificar, por ejemplo, para inyectar el servicio complejo que no está marcado
como primary.
Nos vamos al index.
Importamos.
Guardamos y ahora inyectÃ el complejo.
Se fijan otra forma diferente de registrar o definir beans de Spring.
Para que esto sea manejados por el contenedor y se puedan inyectar en otros componentes, como en los
controladores o en otra clase de servicio, incluso se pueden inyectar en clases de configuraciones
anotadas con configuration.
Es importante que las clases configuration también, como cualquier clase manejada por Spring, tiene
que estar dentro del package principal o base, ya sea en la raíz.
O también podría estar en un sub package del paquete raíz, pero siempre dentro del contexto de Spring
para que pueda ser manejado.
Y esta clase la pueda leer, obtener estas definiciones de los beans y crearlas y guardarlas en el container
en el contenedor.
Ahora, cuál usar?
Si usamos mediante la clase configuré hecho con el bean o anotando con compone con servis o repository.
Bueno, depende.
Cualquiera de las dos va a funcionar bien, pero por ejemplo, si tenemos nuestras propias clases implementadas
por nosotros, lo podemos hacer con component o con servis.
Aunque también lo podemos hacer en una clase de configuración, pero si son clases externas de terceros
u otros frameworks API, por ejemplo del framework de Spring y queremos ocupar utilizar la tenemos que
registrar de esta forma mediante configuré Schon y Vinh simplemente creamos un método la instancia %amoS
y la guardamos con Vim, nada más.
Por ahora quedamos hasta acá.
Nos vemos.