[vc_row][vc_column][vc_column_text]Aprenda como utilizar @Autowired en Spring para que el framework inserte automáticamente dependencias en las aplicaciones Java.[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]@Autowired se utiliza mucho en Spring para inyectar dependencias. Al confiar el framework Spring en sí mismo para inyectar dependencias (por ejemplo, la interface de repositorios), el programador puede estar seguro y enfocarse en la lógica principal de la aplicación.

También podemos utilizar @Autowired para inicializar colecciones de Java que usan genéricos. Digamos que tenemos una interface que podría implementarse mediante un número determinado de clases. Podemos registrar cada una de estas clases en Spring Context con la anotación @Context. En forma opcional, también podemos nombrar el componente usando @Component ($name). Esto se vuelve particularmente útil si queremos asociar cada contexto con una palabra clave. El uso de un nombre de componente también nos permite calificar el bean requerido cada vez que Spring intenta auto conectarse usando Qualifier ($beanName). Un caso de uso podría ser que la palabra clave es el nombre del campo JSON y la clase correspondiente es la clase de utilidad para operar en el modelo asociado con ese JSON.

Interface de muestra:

Podría haber un número n de implementaciones:

Ahora podemos realizar el @Autowire de una colección, digamos un mapa que almacena cada uno de estos «implementadores» con un nombre de contexto:

Spring ahora escanea todas las implementaciones de «GenericUpdater» y las inyecta en este mapa con el nombre dado en @Component($name). Aquí podemos ver la importancia de nombrar los beans. Dado que cada implementación de GenericUpdater tiene un nombre personalizado definido, no hay ambigüedad mientras tratamos de obtener los beans.


Este artículo se encuentra basado en Autowiring generics in Spring.[/vc_column_text][/vc_column][/vc_row]

Autowiring de tipos Generic en Spring
Si te gusto, comparte ...Share on email
Email
Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
Linkedin
Share on google
Google
Etiquetado en:    

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Facebook