Win a copy of Think Java: How to Think Like a Computer Scientist this week in the Java in General forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Bean initialization in spring

 
Sudhanshu Mishra
Ranch Hand
Posts: 236
1
Eclipse IDE Fedora Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi all,
I am trying to understand the bean creation mechanism in spring.I have a doubt regarding the same.I want to know that when do we get the bean object (assuming the bean configuration is done in the xml file xxx-servlet.xml)?Does it happens as soon as we load the xml file from the path?or does it happens when we call a method from BeanFactory interface(or ApplicationContext interface)?

Thanks...
 
Bill Gorder
Bartender
Posts: 1682
7
Android IntelliJ IDE Linux Mac OS X Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Assuming that the beans are eagerly loaded (the default) it will be created when the application context is initialized. The container will call interfaces on BeanFactory (and others) to create and initialize those beans as part of the initialization process.
 
Sudhanshu Mishra
Ranch Hand
Posts: 236
1
Eclipse IDE Fedora Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks for the reply.
But i still want to get one thing clear.What is really an application context?Who creates it?Do i have my beans created as soon as my xml files are loaded/read by container?

I would be grateful for the answers.
Thanks.
 
Jayesh A Lalwani
Rancher
Posts: 2756
32
Eclipse IDE Spring Tomcat Server
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You probably want to pick up a book on Spring. It will go in much more detail. I reccommend Spring In Action. It explains how the application context is loaded and how beans are initialized and wired

To answer your question, if you have a standalone app that you want to use spring in, you have to load the application context from the main method yourself. So, in your main method you do something like this


This call starts the application context, loads the xml, parses the xml, creates the beans, initializes the beans before returning. Basically, the container and beans are loaded for you from the constructor

If you are writing a webapp using spring, generally, you add something like this in your web.xml



Basically, you declare a servlet of type org.springframework.web.servlet.DispatcherServlet to start on startup. This servlet will load the Application Context on startup. It will do exactly what your main method would do.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic