Friday, December 15, 2017

Bean Loading Type In Spring

Bean Loading Type In Spring


Loading the bean which is configured in the Spring-context.xml file, can be done in two ways :

1. Eager loading or Aggressive loading
2. Lazy Loading
    Eager loading or Aggressive loading 
    In the case of Aggressive loading all the beans will be loaded and initialized at container start-up. It is called as eager or aggressive loading because of loading all the bean , instance instantiated and initializing at the container start-up only. We just have to write some configuration in the XML file to indicate container for eager loading. This loading is at the bean level . 

    To load any bean aggressively we have to mention lazy-init="false" . 
    Note that this configuration is at the bean level that means if we want to load all the configured bean to load eagerly then have to mention in each bean tag. If not mention then also by default it load eagerly.  

    Lazy loading 
    In the case of lazy loading all the beans will be loaded, instantiated and initialized when the container try to use them by calling getBeans() method. We just have to mention lazy-init="true" in order to load the beans lazily. 
    So bean will be loaded according to the configured lazy-init attribute with its corresponding value , or if not mentioned then by default it load Eagerly.  

    Note : All bean having singleton scope will follow aggressive loading and all bean with prototype scope will follow lazy loading.

    To know more about bean scopes - Click Here

    Available link for download