This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
First, I recommend learning the latest version of Spring. The sample code you use BeanFactory instead of ApplicationContext. This means that you are using at least 5 year old material, as today to start up Spring you should create an ApplicationContext instead.
Now, in your case you changed your dependency to be property dependency. When you had constructor dependency, those dependencies are mandatory, but how can you create one before the other if they depend on each other both via constructor args. Just think in Java can you do
A a = new A(b);
B b = new B(a);
No because the first line doesn't work, there is no instance of B created yet, and if you tried to reverse the two lines, same problem but the other way.
But I can do
A a = new A();
B b = new B();
Now, I would take that circular dependency and see it as a code smell and refactor the code so that there is no circular dependency.