“At first it may seem that setter injection is preferred since you have no argument constructors which will make it easy for you to create the object in production and test. However, there is one non-obvious benefit with constructor injection, which in my opinion makes it a winner. Constructor-injection enforces the order of initialization and prevents circular dependencies.” — good read, i was in a camp i didn’t know was a camp tbh.. i just thought setter based injection was a fallback approach… good to know though.