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