Spring is a Java-based application framework that is designed and developed by the Pivotal Software Company.
In this tutorial, we will talk about Spring 5 which is the latest and more improved version of the conventional Spring framework.
Spring is an application framework that is used to create Enterprise Applications. We can create web-based applications easily due to its vast library and tools.
Spring provides an easy and friendly environment to create Java enterprise applications. It is full of features and provides various other sub-projects such as Spring Security, Spring Boot, Spring MVC, Spring Cloud, Spring Data, etc that help to build applications accordingly.
Spring 5 has been improved over time, in the early days of Java EE and Spring, we deploy applications to an application server but now with the help of Spring Boot we can create applications in a DevOps and cloud-friendly way.
The core and heart of Spring is an IOC container that manages bean objects and allows dependency injection. We will discuss these later in our tutorial.
Spring is built with several components(modules) to work with the web, database, network, etc. Below is the image of Spring Runtime that shows its internal architecture.
Spring Framework Architecture
In the diagram below, we have shown the Spring framework architecture:
The Spring Framework is divided into several modules based on their services. These modules are:
Spring Core Container: It is the core module of the Spring that provides containers like BeanFactory and ApplicationContext.
Inversion of Control: It is also known as dependency injection and used to configure application components and lifecycle management of Java objects.
Aspect-Oriented Programming: This module enables implementing cross-cutting concerns inside the Spring framework such as transaction management, remote access, etc.
Data Access: It helps with working with database systems by using Java Database Connectivity (JDBC) and ORM (Object-Relational Mapping) tools.
Model View Controller: It is also known as the MVC model that helps to create web-based applications and RESTful Web services.
Authentication And Authorization: It is used to configure security processes within the framework by using the Spring Security (a sub-project of Spring).
Messaging: Spring uses a message listener object to convey the message by using JMS (Java Message Service) which is the improvement of JMS API.
Transaction Management: It consists of several transaction management APIs and coordinates transactions for Java objects.
Remote Management: It helps to configure Java objects for local or remote by using Java Management Extensions (JMX).
Testing: Testing module that helps in writing unit tests and integration tests.
Spring 5 Updates
It requires a minimum Java version is Java 8 or higher.
Deprecated some integration: Tiles, Gavava, Velocity, Portrait, etc.
Spring MVC is upgraded to use Servlet API 4.0.
Support for the new Reactive programming framework: Spring WebFlux.
History and Versions of Spring
The following table contains Spring Framework releases with the corresponding year. Its first version was released on 1 October 2002.