
¿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 .
💼 Empleos tech relacionados:
- ***Desarrollador Java Semi Sr*** Híbrido CDMX · NOVA SOLUTION SYSTEMS, S.A. DE C.V.
- Java Production Support · Capital Empresarial Horizonte
3,097 vacantes activas en LATAM · ver todas → · ⭐ Opiniones en Google
¿En qué te ayudamos hoy?
🎓 Cursos confirmados con 50% OFF hoyInicia 26 Sep — cupo limitado para lectores del blog:
-
💬 Diplomado .NET Empresarial Desde Cero
· Inicia 26 Sep · sabatino ·
$39,990$19,995 (-50%) MXN -
💬 Visual Studio .NET Desde Cero
· Inicia 26 Sep · sabatino ·
$12,250$6,125 (-50%) MXN -
💬 Consultor AWS Despliegue de Apps
· Inicia 28 Sep · lunes - jueves ·
$8,130$4,065 (-50%) MXN
Por WhatsApp en horario habil · ver todos los cursos → · ⭐ Opiniones en Google
Spring @Autowired y su funcionamiento
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

Spring Testing y Wiring
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í!
💼 Empleos tech relacionados:
- ***Desarrollador Java Semi Sr*** Híbrido CDMX · NOVA SOLUTION SYSTEMS, S.A. DE C.V.
- Java Production Support · Capital Empresarial Horizonte
3,097 vacantes activas en LATAM · ver todas → · ⭐ Opiniones en Google


