Spring container creates Beans by creating a DAG first and then instantiates the non-dependent beans before creating any beans that are dependent on other beans. This is fine and understood. Any beans that is are dependent on regular java objects / pojo's could be supplied by JVM classloader mechanism and that fine too.
But any java object that's dependent on a bean is what causing me to understand this interleaved mechanism bit more in depth.
- in simple case - JVM can wait for the spring container to finish its bean creation process and then JVM can create any java objs it has to.
and
- for interleaved beans and java objs: they both (jvm and spring container) will create beans and java objs in an interleaved fashion as required. I think of this because, when a bean can have a ref to regular java obj and a in turn a java obj could have a bean as dependency.
So, Just to clarify - does Spring Container and JVM create beans and obj's in interleaved fashion.
(This is a Q to understand the working of Spring Container along side JVM, this can not be specific to a class or seceniro or use case, so please don't mark this question as lacking somthing like specifics or use case or somthing else -- Thanks for understanding.)
Edit following @BoristheSpider comment:
Take some spring bean. Spring container will try to create this bean. Now, say, this bean is depended on a pojo. So now, how is this pojo created. Is it created by Spring Container directly or by delegating it to the respective JVM classloader (bootstrap or ext or application). I am thinking it will delegate it to corresponding JVM classloader. someone can clarify this.
NEXT - when JVM has to create a pojo which is dependent on bean how does it know about the bean. So JVM and Spring Container has to care about one and other. How to they work hand-in-hand is what I am trying to uderstand.