Blog_Banner_Asset
    Homebreadcumb forward arrow iconBlogbreadcumb forward arrow iconFull Stack Developmentbreadcumb forward arrow iconSpring Bean Life Cycle Explained [With Coding Example]

Spring Bean Life Cycle Explained [With Coding Example]

Last updated:
11th Aug, 2020
Views
Read Time
7 Mins
share image icon
In this article
Chevron in toc
View All
Spring Bean Life Cycle Explained [With Coding Example]

Bean is an object in an application. A bean is created, used, and finally destroyed when its purpose is over. These are the different stages of a spring life cycle. The entire spring bean life cycle is supervised by the Spring IoC (Inversion of Control) container. That is why these beans are called spring beans.

Check out our free courses to get an edge over the competition.

source

Ads of upGrad blog

The Life Cycle of a Spring Bean

source

In a spring bean life cycle, first of all, a bean is instantiated. After instantiation, a bean goes through a sequence of steps before being ready to be used. When a bean is no longer required for any function, it is destroyed.

Check out upGrad’s Java Bootcamp

Explore Our Software Development Free Courses

Read: Top 18 Exciting Spring Projects Ideas & Topics For Beginners

Spring bean life cycle can be controlled in the following ways

  • Instantiation by using:
  • InitializingBean callback interface.
  • Custom init() method from the bean configuration file.
  • Aware interfaces for distinct actions.
  • PostConstruct and PreDestroy annotations.
  • Destruction
  • DisposableBean callback interface
  • Custom destroy() method from the bean configuration file.

Check out upGrad’s Full Stack Development Bootcamp (JS/MERN)

Instantiation of a bean

The first process in the spring bean life cycle is an instantiation. The creation of a bean rests on JAVA or XML bean configuration file. This can be done in two ways. 

They are:

  • InitializingBean callback interface: Instantiation in this way is done in a method named afterPropertiesSet(). This method is present in org.springframework.beans.factory.InitializingBean interface. In the program below, a class is created which implements this interface. This enables using the afterPropertiesSet()  method of that interface in the created class.

Following is the program depicting this instantiation process

import org.springframework.beans.factory.InitializingBean;

public class Creatingbean implements InitializingBean

{

@Override

public void afterPropertiesSet() throws Exception

{

// Bean is initialized

}

}

  • Custom created method of instantiation in the bean configuration file: In this process, an XML based configuration file is used. Init-method of this file is used to specifically name the instantiation method. This method is used in the class for bean instantiation. The local definition of a single bean is shown below. In this way, we can create a single bean.

beans.xml:

<beans>

<bean id=”creatingbean” class=”com.workinginjava.work.Creatingbean”

init-method=”createInit” ></bean>

</beans>

Check out: Top 7 Exciting Spring Boot Projects & Topics For Beginners

Following is the program depicting this instantiation process by loading beans.xml

package com.workinginjava.work;

public class Creatingbean 

{

public void createInit()

//Custom created init method is used for instantiation of a bean

}

Aware Interfaces: Spring Framework infrastructure provides several aware interfaces. These interfaces inculcate certain distinct behavior to a created bean. 

Some of the important Aware Interfaces include:

  • BeanFactoryAware: setBeanFactory() furnishes access to the bean factory that created the object.
  • BeanNameAware: setBeanName() method under BeanNameAware interface provides the name of the bean. 
  • ApplicationContextAware: setApplicationContext() method under this specific interface provides the ApplicationContext of the bean. 

PostConstruct and PreDestroy annotations: PostConstruct is an annotated method. It is called after bean construction and before requesting an object. PreDestroy is also an annotated method. It is called just before the destruction of a bean.

Explore our Popular Software Engineering Courses

upGrad’s Exclusive Software and Tech Webinar for you –

SAAS Business – What is So Different?

 

Following program depicts the usage of annotations

import javax.annotation.PostConstruct;

import javax.annotation.PreDestroy; 

public class BeanWork

{

   @PostConstruct

    public void createInit() 

    {

        //Initiation of bean(PostConstruct)

    }

   @PreDestroy

    public void createDestroy() 

    {

        //Destruction of bean(PreDestroy)

    }

}

The createInit() and createDestroy() are custom created initiation and destruction methods of a bean. This is done using the XML bean configuration file. 

In-Demand Software Development Skills

Destruction of a bean

The last process in the spring bean life cycle is the destruction process. It is the process of removing a bean. The removal of a bean rests on JAVA or XML bean configuration file. 

This can be done in two ways

  • DisposableBean callback interface: Disposal is done in a method named destroy(). This method is present in org.springframework.beans.factory.DisposableBean interface. In the program below, a class is created which implements this interface. This enables using the destroy() method of that interface in the created class.

Following is the program depicting this instantiation process

import org.springframework.beans.factory.DisposableBean;

public class Destroyingbean implements DisposableBean

{

@Override

public void destroy() throws Exception

{

// Bean is destroyed

}

}

  • Custom created method of destruction in the bean configuration file: XML based configuration file is used here. The destroy-method of this file is used to specifically name the destruction method. This method is then used in the class for the destruction of the bean. The local definition of a single bean and steps to destroy it is shown below.

Beans.xml:

<beans>

<bean id=”destroyingbean” class=”com.workinginjava.work.Destroyingbean”

destroy-method=”createDestroy” ></bean>

</beans>

Following is the program depicting this destruction process by loading the beans.xml:

package com.workinginjava.work;

public class Destroyingbean 

{

public void createDestroy()

//Custom destruction method is used for the destruction of a bean

}

Spring beans are created for a specific purpose. So, every bean goes through a distinct spring life cycle. There are two ways of beginning and ending the spring bean lifecycle. If InitializingBean and DisposableBean interfaces are used, it binds the code to Spring. A better way is to identify the init-method and destroy-method in the bean configuration file.

Also Read: Spring Developer Salary in India: For Freshers & Experienced

Ads of upGrad blog

Learn Software Development online from the World’s top Universities. Earn Executive PG Programs, Advanced Certificate Programs or Masters Programs to fast-track your career.

Read our Popular Articles related to Software Development

Wrapping up

These points about the spring bean life cycle might answer some questions. Still, they raise new ones for you – What are the resources for an aspiring Full Stack developer and the use of spring framework? What is the scope in this field? And, most importantly, how to build a career in this domain?

If you’re interested to learn more about full-stack development, check out upGrad & IIIT-B’s PG Diploma in Full-stack Software Development which is designed for working professionals and offers 500+ hours of rigorous training, 9+ projects, and assignments, IIIT-B Alumni status, practical hands-on capstone projects & job assistance with top firms.

Profile

Rohan Vats

Blog Author
Software Engineering Manager @ upGrad. Passionate about building large scale web apps with delightful experiences. In pursuit of transforming engineers into leaders.

Frequently Asked Questions (FAQs)

1Q1. What is a spring bean in Java?

A bean is a reusable component or class that encapsulates several objects into one standardized object in the Java programming language. This allows programmers to access this object from several places and facilitates easy maintenance. A Spring bean in Java is an object that is instantiated or created and assembled by the Spring IoC container. Spring beans form the core of the Java application and can be defined either with the help of XML configuration or by using annotation. Beans can also be defined completely in Java class with the help of Java configuration. Beans defined in Spring come with one unique identifier and multiple aliases.

2Q2. What are JavaBeans?

JavaBeans are actually classes in the Java language used to encapsulate multiple objects into a single object class, which is the bean. There are certain conventions that the JavaBeans class should adhere to. These conventions mandate that this class must be serializable. It should come with a public no-arg constructor. All of the properties in JavaBeans must be made private with only getters, and setter methods made public. Serialization is one of the most significant features of Java as it allows Java objects to be saved, i.e., it promotes the persistence of the objects. It also allows an object to travel over a network.

3Q3. How is Spring different from Spring Boot?

Spring is an open-source Java framework that is lightweight and ideal for developing enterprise applications. Dependency injection is the most significant feature of this Spring framework. Spring boot is among the most popularly used programming frameworks meant for backend development. It is developed on top of the traditional spring framework, so it comes with all features of Spring but is significantly easier to use than Spring. Spring boot's architecture is based on microservices and helps develop release-ready applications in a much shorter time. So, while spring boot is effective in developing standalone apps, Spring helps develop more loosely coupled applications.

Explore Free Courses

Suggested Blogs

Top 7 Node js Project Ideas &#038; Topics
31574
Node.JS is a part of the famous MEAN stack used for web development purposes. An open-sourced server environment, Node is written on JavaScript and he
Read More

by Rohan Vats

05 Mar 2024

How to Rename Column Name in SQL
46935
Introduction We are surrounded by Data. We used to store information on paper in enormous file organizers. But eventually, we have come to store it o
Read More

by Rohan Vats

04 Mar 2024

Android Developer Salary in India in 2024 [For Freshers &#038; Experienced]
901324
Wondering what is the range of Android Developer Salary in India? Software engineering is one of the most sought after courses in India. It is a reno
Read More

by Rohan Vats

04 Mar 2024

7 Top Django Projects on Github [For Beginners &amp; Experienced]
52104
One of the best ways to learn a skill is to use it, and what better way to do this than to work on projects? So in this article, we’re sharing t
Read More

by Rohan Vats

04 Mar 2024

Salesforce Developer Salary in India in 2024 [For Freshers &#038; Experienced]
909195
Wondering what is the range of salesforce salary in India? Businesses thrive because of customers. It does not matter whether the operations are B2B
Read More

by Rohan Vats

04 Mar 2024

15 Must-Know Spring MVC Interview Questions
34760
Spring has become one of the most used Java frameworks for the development of web-applications. All the new Java applications are by default using Spr
Read More

by Arjun Mathur

04 Mar 2024

Front End Developer Salary in India in 2023 [For Freshers &#038; Experienced]
902388
Wondering what is the range of front end developer salary in India? Do you know what front end developers do and the salary they earn? Do you know wh
Read More

by Rohan Vats

04 Mar 2024

Method Overloading in Java [With Examples]
26237
Java is a versatile language that follows the concepts of Object-Oriented Programming. Many features of object-oriented programming make the code modu
Read More

by Rohan Vats

27 Feb 2024

50 Most Asked Javascript Interview Questions &#038; Answers [2024]
4385
Javascript Interview Question and Answers In this article, we have compiled the most frequently asked JavaScript Interview Questions. These questions
Read More

by Kechit Goyal

26 Feb 2024

Schedule 1:1 free counsellingTalk to Career Expert
icon
footer sticky close icon