The Dependency resolution process
in the doc says : "For each bean, its dependencies are expressed in the form of properties, constructor arguments, or arguments to the static-factory method if you are using that instead of a normal constructor. These dependencies are provided to the bean, when the bean is actually created."
I still can't say anything for sure, but it looks like in that case, the setter is going to be part of the dependency checking, so if it is not called, the dependency check will fail. The point is : don't use both setter and constructor injection for the same property