🧩 Inyección de Dependencias en Java
La inyección de dependencias es un patrón que permite desacoplar clases, facilitando la modularidad, testeo y evolución del sistema.
¿Qué es una dependencia?
class ServicioImpresion {
public void imprimir() {
System.out.println("Imprimiendo...");
}
}
class Principal {
public static void main(String[] args) {
ServicioImpresion servicio = new ServicioImpresion(); // dependencia creada aquí
servicio.imprimir();
}
}
¿Cómo se inyecta una dependencia?
- Constructor Injection: se pasa la dependencia al constructor.
- Setter Injection: se usa un método set para inyectarla.
- Interface Injection: menos común en Java puro.
Ejemplo con Constructor Injection
class Cliente {
private final ServicioImpresion servicio;
public Cliente(ServicioImpresion servicio) {
this.servicio = servicio;
}
public void ejecutar() {
servicio.imprimir();
}
}
Ventajas
- 🔓 Desacoplamiento entre clases
- 🧪 Mayor facilidad para testear
- 🔄 Flexibilidad para cambiar implementaciones
Frameworks que lo usan
- Spring Framework: con anotaciones como
@Autowired,@Component - Google Guice: ligero y enfocado en DI
- Jakarta EE: usa
@Injectcon CDI