Spring имеет два двух типа DI: установщик DI и конструктивный DI.
DI на основе конструктора фиксирует порядок, в котором необходимо внедрять зависимости. DI на основе сеттера не предлагает этого.
DI, основанный на сеттере, помогает нам внедрять зависимость только тогда, когда она требуется, а не во время построения.
Я не вижу других существенных различий, поскольку оба типа Spring DI предоставляют одни и те же функции - как установщик, так и конструктор DI вводят зависимость при запуске кода. Конечно, конструктор DI будет делать это через конструктор, в то время как установщик DI будет делать это через сеттер сразу после создания объекта, но это не имеет никакого значения для разработчика с точки зрения производительности и т. Д. Оба также предлагают средства для указания порядка внедрения зависимостей.
Я ищу сценарий, в котором один дает явное преимущество перед другим или когда один тип совершенно непригоден.
Мои 2 цента. Примите classA с 10 полями, с немного введенных зависимостей . Теперь при необходимости во всем classA со всеми полями затем, можно пойти для инжекция конструктора . Но если Вам нужно только одно из введенного поля для использования в том классе, можно использовать инжекция метода set .
Таким образом,