Spring Framework overview

The framework's core features can be used by any Java application
You can use them to build J2EE applications.

Framework overview

The framework's core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform. Although the framework does not impose any specific programming model, it has become popular in the Java community as an alternative to, replacement for, or even addition to the Enterprise JavaBean (EJB) model.

Spring framework architecture

diagram to understand the spring framework modules
Source "docs.spring.io"

Modules

This is a brief description of the most used Spring framework modules:

Spring Core Container

The spring-core and spring-beans modules provide the fundamental parts of the framework, including the IoC and Dependency Injection features. (BeanFactory and ApplicationContext).

Aspect-oriented programming

Provides an AOP (Alliance-compliant aspect-oriented programming) implementation allowing you to define, for example, method interceptors and pointcuts to cleanly decouple code that implements functionality that should be separated.

Authentication and authorization

Configurable security processes that support a range of standards, protocols, tools and practices via the Spring Security sub-project (formerly Acegi Security System for Spring).

Convention over configuration

A rapid application development solution for Spring-based enterprise applications is offered in the Spring Roo module.

Data access

Working with relational database management systems on the Java platform using JDBC and object-relational mapping tools and with NoSQL databases.

Inversion of control container

Configuration of application components and lifecycle management of Java objects, done mainly via dependency injection.

Messaging

Configurable registration of message listener objects for transparent message-consumption from message queues via JMS, improvement of message sending over standard JMS APIs.

Model–view–controller

An HTTP and servlet-based framework providing hooks for extension and customization for web applications and RESTful Web services.

Remote access framework

Configurable RPC-style marshalling of Java objects over networks supporting RMI, CORBA and HTTP-based protocols including Web services (SOAP).

Transaction management

Unifies several transaction management APIs and coordinates transactions for Java objects.

Remote management

Configurable exposure and management of Java objects for local or remote configuration via JMX.

Testing

Support classes for writing unit tests and integration tests.