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