Spring tiene dos dos tipos de DI: setter DI y construcción DI.Setter DI vs. Constructor DI en Spring?
La DI basada en el constructor arregla el orden en que las dependencias deben ser inyectadas. La DI basada en Setter no ofrece esto.
DI basado en Setter nos ayuda a inyectar la dependencia solo cuando es necesario, en lugar de necesitarla en el momento de la construcción.
No veo ninguna otra diferencia significativa, ya que ambos tipos de Spring DI ofrecen las mismas características: tanto setter como constructor DI inyectan la dependencia cuando se inicia el código. Por supuesto, el constructor DI lo hará a través del constructor mientras que el setter DI lo hará a través de un setter justo después de construir el objeto, pero no hace ninguna diferencia para el desarrollador en términos de rendimiento, etc. Ambos también ofrecen medios para especificar el orden de la inyección de dependencia también.
Estoy buscando un escenario donde uno proporciona una ventaja distintiva sobre el otro o donde un tipo es completamente inutilizable.
http://stackoverflow.com/questions/39890849/what-exactly-is-field-injection-and-how-to-avoid-it – GKislin