Última Actualización abril 21st, 2021 12:14 PM
¿Te gustaría aprender Java Empresarial desde cero?Tenemos los Diplomados que necesitas.¡Haz clic aquí!
Spring @Autowired es una de las anotaciones más habituales cuando trabajamos con Spring Framework ya que se trata de la anotación que permite inyectar unas dependencias con otras dentro de Spring .
Normalmente estamos acostumbrados a usar @AutoWired a nivel de la propiedad que deseamos inyectar. Spring funciona como una mega factoria de objetos. Cada clase se registra para instanciar objetos con alguna de las anotaciones @Controller ,@Service ,@repository o @RestController.
Una vez que los objetos estan creados la anotación Spring @Autowired se encarga de construir las ligazones entre los distintos elementos
Por ejemplo este caso es habitual cuando tenemos un servicio y un repositorio. Vamos a verlo usando Spring Boot
package com.arquitecturajava.wired; import java.util.ArrayList; import java.util.List; import org.springframework.stereotype.Component; import org.springframework.stereotype.Repository; @Repository public class LibroRepository { public List<Libro> buscarTodos() { List<Libro> lista= new ArrayList<Libro>(); lista.add(new Libro ("1","java","pedro")); lista.add(new Libro ("2","python","gema")); return lista; } }
Como podemos ver tenemos el LibroRepository como primer componente y le queremos enlazar desde un Servicio.
package com.arquitecturajava.wired; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class LibroRestService { @Autowired LibroRepository repositorio; @RequestMapping("/libros") public List<Libro> buscarTodos() { return repositorio.buscarTodos(); } }
Ahora tenemos los dos elementos enlazados y un ServicioREST publicado por lo tanto si ejecutamos la aplicación de Spring Boot dispondremos de una Url con un listado de Libros disponible
Hoy por hoy las metodologías de TDD cada día se usan más y aunque este uso de la anotacion @Autowired es el más habitual suele ser más práctico y cómodo para el manejo de test realizar un @Autowired a nivel de constructores por lo tanto el código quedaría así:
package com.arquitecturajava.wired; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class LibroRestService { LibroRepository repositorio; @Autowired public LibroRestService(LibroRepository repositorio) { this.repositorio=repositorio; } @RequestMapping("/libros") public List<Libro> buscarTodos() { return repositorio.buscarTodos(); } }
De esta manera el código queda más limpio , flexible y más sencillo de usar cuando utilicemos Test Driven Development.
Te esperamos en los próximos artículos en donde hablaremos mas acerca de estos temas que hoy en día son de importancia e interés en el mundo de la tecnología.
¿Te gustaría aprender Java Empresarial desde cero?
Tenemos los Diplomados que necesitas.¡Haz clic aquí!
Powered by Facebook Comments
No related posts.
Abr 21, 2021 0
Abr 20, 2021 0
Abr 19, 2021 0
Abr 17, 2021 0
Abr 17, 2021 0
Abr 10, 2021 0
Abr 08, 2021 0
Mar 29, 2021 0
Abr 21, 2021 0
Abr 20, 2021 0
Abr 19, 2021 0