A framework for building Java web applications based on the Model-View-Controller (MVC) pattern. It promotes flexible and decoupled code from the underlying view technologies.
Spring MVC is an action-based (as opposed to component-based) web framework built on top of the Spring IOC Container. MVC stands for Model View Controller, a long standing design pattern that layers an application separating presentation concerns from business logic see Portland Pattern Repository's MVC Entry
The latest stable version is 5.1.4 and was released in January 2019, and the current docs can be found in the MVC section of the Spring Reference.
Spring Version 5.0 fully supports Java 9 features, this release now requires Java SE 8.
Major Spring Releases
- First Release : Year 2004
- Spring 2.0 : Intoduced xmlnamespaces and aspectj support.
- Spring 2.5 : Anotation Based Configuration
- Spring 3.0 : Strong Java 5+ foundation across framework, Introduced @Configuration model
- Spring 3.2 : Java Based Configuration introduced
- Spring 4.0 : Java 8 Support, removed Deprecated classes.
- Spring 5.0 : Java 9 Support, reactive programming support
The Spring Framework comprises several modules that provide a range of services:
- spring-ioc Inversion of Control container: configuration of application components and lifecycle management of java objects, done mainly via dependency injection
- spring-aop Aspect-oriented programming: enables implementation of cross-cutting routines
- spring-data Data access: working with relational database management systems on the java platform using jdbc and object-relational mapping tools and with nosqldatabases
- spring-transactions Transaction management: unifies several transaction management APIs and coordinates transactions for Java objects
- spring-mvc Model-view-controller: an HTTP- and servlet-based framework providing hooks for extension and customization for web applications and RESTfull web services.
- spring-remoting Remote Access framework: configurative RPC-style export and import of Java objects over networks supporting rmi, corba and HTTP-based protocols including web services (soap)
- Convention-over-configuration: a rapid application development solution for Spring-based enterprise applications is offered in the spring-roo module
- spring-batch Batch processing: a framework for high-volume processing featuring reusable functions including logging/tracing, transaction management, job processing statistics, job restart, skip, and resource management
- 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).
- spring-remoting Remote Management: configurative exposure and management of Java objects for local or remote configuration via jmx.
- spring-messaging Messaging: configurative registration of message listener objects for transparent message-consumption from message queues via jms, improvement of message sending over - - standard jms APIs
- spring-test Testing: support classes for writing unit tests and integration tests