The Spring framework is widely used for developing different types of applications. In this article, I will dive into the details of what is the spring framework and the advantages that it provides.

Before Spring

A typical Java application consists of many objects. For example if you are building an application that interacts with the database, your application would have objects corresponding to the POJO class, DAO class, etc. The problem with Java was that there was no way to wire together these objects. So your main class or the starting point of the application would somehow need to create all the required objects and the other parts of the application would use these as required. Design patterns like Factory Pattern, Abstract Factory Pattern helped to ease this slightly, but still the responsibility of creating all the necessary objects still lay with the application code.

Java then introduced the EJB framework which eased this to some extent. The problem with EJB framework was that it was heavy and development using EJBs was not easy. Developers needed to create home and remote interfaces and write a lot of boilerplate code. Unit testing is also not easy with EJBs

What Spring is

The Spring framework was developed as a solution to these problems. At its very core, Spring provides a wiring mechanism. It consists of the Spring container which uses Inversion of Control mechanism. Inversion of Control simply means the container is responsible for creating objects and not the application program. One of the ways to achieve Inversion of Control is Dependency Injection. Spring uses Dependency Injection. In Dependency Injection, the objects are injected into other objects through setter methods or constructors. So basically, Spring takes care of creating and setting the necessary dependencies. So the application code only needs to take care of the business logic.

How Spring is organised

The Spring framework consists of several modules, each module takes care of a different functionality. You can read more about Spring modules here.

Benefits of Spring

Some of the benefits of the Spring framework are as follows:

Further Learning

Spring MasterClass Spring Tutorial For Beginners Step by Step Spring MVC Tutorial Spring Framework in Easy Steps