This is from Spring Link
In general, you can trust Spring to do the right thing. It detects configuration problems, such as links to non-existent beans and circular dependencies, when loading a container. Spring sets properties and resolves dependencies as late as possible when the beans are actually created.
Thus, it creates instances as beans and inserts them on top of each other.
EDIT
BeanCurrentlyInCreationException - . , . , , !