Explica Inversion of Control y Dependency Injection, y por qué Spring las usa.
Respuesta
- Inversion of Control: tu código ya no controla la creación ni el ciclo de vida de sus colaboradores; lo hace un contenedor.
- Dependency Injection es la forma de aplicar IoC: una clase declara sus dependencias (parámetros del constructor) y el contenedor se las da.
- Spring busca beans (
@Component, @Service...), construye el grafo de objetos al arrancar e inyecta las dependencias. - Ventajas: bajo acoplamiento (dependes de interfaces), tests fáciles con mocks, configuración central, gestión del ciclo de vida.
- Ejemplo:
OrderService(PaymentGateway g); en producción Spring da un gateway de Stripe, en los tests pasas un mock.
Practica esta pregunta en Repaso