muy corto,
¿Cuál es el propósito de DI? Con la inyección de dependencia, los objetos no definen sus dependencias por sí mismos, las dependencias se les inyectan según sea necesario.
¿Cómo se beneficia? Los objetos no necesitan saber dónde ni cómo obtener sus dependencias, lo que da como resultado un acoplamiento flexible entre los objetos, lo que los hace mucho más fáciles de probar.
¿Cómo se implementa? Normalmente, un contenedor administra el ciclo de vida de los objetos y sus dependencias según un archivo de configuración o anotaciones.
La explicación más simple y clara de DI en el código: http://codeflex.co/java-dependency-injection-simple-example/ –