Spring Bean Life Cycle
The beans life cycle in
spring is one of the most important features to understand.
In many of the real time
applications, it is necessary to perform some of the operations before initializing a
bean and it is necessary to perform some cleanup operations before the bean is destroyed by
the container.
In Java, The life cycle of an object
begins with new keyword.
When we create an object using new,
that time it calls the series of hierarchical class constructors (call
goes from bottom to top and hence execution from top to bottom) and finally
makes the object available. When this object will not have any reference, it
will be garbage collected. This is the simple life cycle of an
object in Java.
But in spring, Bean’s life cycle is
having few more things to do. The spring bean’s life cycle is as shown below
1)
Spring container looks for the
definition of the bean in the spring configuration xml file.
2)
Spring instantiate the
bean by calling no argument default constructor of that class, If there
is only parameterized constructor in the class , then bean
must be defined in spring xml file with constructor injection using
which container will instantiate the bean otherwise it will throw bean creation
exception.
Spring
injects the values and references if any into bean’s properties.
3)
If the bean implements BeanNameAware interface,
Spring passes the bean’s ID to the setBeanName () method and
executes this method.
4)
If the bean implements BeanFactoryAware interface,
Spring calls the setBeanFactory () method, passing in the bean
factory itself and executes this method.
5)
If the bean implements ApplicationContextAware interface,
Spring will call the setApplicationContext () method, passing
in a reference to the current application context and executes this method.
6)
If the bean implements the BeanPostProcessor interface,
Spring calls their postProcessBeforeInitialization () method
7)
If the bean implements the InitializingBean interface,
Spring calls afterPropertiesSet() method after all the
properties of that bean are set.
Similarly, if the bean is declared with an init-method, then the specified initialization method will be called
Similarly, if the bean is declared with an init-method, then the specified initialization method will be called
8)
If the bean implements BeanPostProcessor,
Spring will call their postProcessAfterInitialization() method.
9)
At this point, the bean is ready
to be used by the application and will remain in the application
context until the application context is destroyed.
10) If the bean implements the DisposableBean interface,
then Spring will call the destroy() method. Likewise, if any
bean was declared with a destroy-method, then the specified method
will be called.
Comments
Post a Comment