}}
The '''Spring Framework''' is an [[application framework]] and [[inversion of control]] [[Servlet container|container]] for the [[Java platform]].{{sfn | Deinum | Rubio | Long | Mak | 2014 | loc=§2 Spring Core Tasks | p=47}} The framework's core features can be used by any Java application, but there are extensions for building [[web application]]s on top of the [[Java EE]] (Enterprise Edition) platform. The framework does not impose any specific [[programming model]].{{Citation needed|reason=Spring Web Flux Framework heavily uses the functional-programming paradigm according to Deinum and Cosmina's "Pro Spring MVC with WebFlux". Need supporting information for the claim that the framework does not impose any specific programming model|date=June 2023}}. The framework has become popular in the Java community as an addition to the [[Enterprise JavaBeans]] (EJB) model.{{sfn | Deinum | Rubio | Long | Mak | 2014 | loc=§16-2 Integrating Two Systems Using JMS | pp=694-698}} The Spring Framework is [[Free and open-source software|free and open source software]].{{sfn|Johnson|Hoeller|2004}}{{rp | pp=121–122}}{{sfn|Deinum|Cosmina|2021|loc=§1 Setting up a Local Development Environment | p=1}}
==Version history==
{| class="wikitable"
|-
! Version
! Date
! Notes
|-
| 0.9
| 2003
|
|-
| 1.0
| March 24, 2004
| First production release.
|-
| 2.0
| 2006
|
|-
| 3.0
| 2009
|
|-
| 4.0
| 2013
|
|-
| 5.0
| 2017
|
|-
| 6.0
| November 16, 2022
|
|-
|}
The first version was written by [[Rod Johnson (programmer)|Rod Johnson]], who released the framework with the publication of his book ''Expert One-on-One J2EE Design and Development'' in October 2002. The framework was first released under the [[Apache License|Apache 2.0 license]] in June 2003. The first production release, 1.0, was released in March 2004.<ref>{{cite web |url=https://spring.io/blog/2004/03/24/spring-framework-1-0-final-released | date=24 March 2014 | title=Spring Framework 1.0 Final Released | website=Official Spring Framework blog |access-date=1 March 2021}}</ref> The Spring 1.2.6 framework won a [[Jolt Awards|Jolt productivity award]] and a [[JAX Innovation Award]] in 2006.<ref>[http://www.ddj.com/architect/187900423?pgno=10 Jolt winners 2006]</ref><ref>{{Cite web |url=http://jax-award.de/jax_award06/gewinner_de.php |title=JAX Innovation Award Gewinner 2006 |access-date=2009-08-12 |archive-url=https://web.archive.org/web/20090817202514/http://jax-award.de/jax_award06/gewinner_de.php |archive-date=2009-08-17 |url-status=dead }}</ref> Spring 2.0 was released in October 2006, Spring 2.5 in November 2007, Spring 3.0 in December 2009, Spring 3.1 in December 2011, and Spring 3.2.5 in November 2013.<ref>{{cite web |url=https://spring.io/blog/2013/11/07/spring-framework-3-2-5-released |date=7 Nov 2013 | title=Spring Framework 3.2.5 Released | website=Official Spring website | access-date=16 October 2016}}</ref> Spring Framework 4.0 was released in December 2013.<ref>{{cite web|url=https://spring.io/blog/2013/12/12/announcing-spring-framework-4-0-ga-release/|title=Announcing Spring Framework 4.0 GA Release|publisher=Spring blog|date=12 December 2013}}</ref> Notable improvements in Spring 4.0 included support for Java SE (Standard Edition) 8, [[Groovy (programming language)|Groovy]] 2,{{sfn | Walls | 2016 | loc=§5 | pp=92-106}}
{{sfn | Cosmina | Harrop | Schaefer | Ho | 2017 | loc=§4 Spring Configuration in Detail and Spring Boot | pp=125-126 }} some aspects of Java EE 7, and [[WebSocket]].
{{sfn | Cosmina | Harrop | Schaefer | Ho | 2017 | loc = §1 Introducing Spring | pp=1-18}}
Spring Boot 1.0 was released in April 2014.<ref>{{cite web|url=https://github.com/spring-projects/spring-boot/releases/tag/v1.0.0.RELEASE|title=Spring Boot v1.0.0.RELEASE|publisher=github.com}}</ref>
Spring Framework 4.2.0 was released on 31 July 2015 and was immediately upgraded to version 4.2.1, which was released on 01 Sept 2015.<ref>{{cite web|url=http://spring.io/blog/2015/07/31/spring-framework-4-2-goes-ga|title=Spring Framework 4.2 goes GA|publisher=Spring Blog|date=31 July 2015}}</ref> It is ''"compatible with Java 6, 7 and 8, with a focus on core refinements and modern web capabilities"''.<ref name="spring-4.2">{{cite web|url=http://spring.io/blog/2015/07/31/spring-framework-4-2-goes-ga|title=Spring Framework 4.2 goes GA|publisher=Spring Blog}}</ref>
Spring Framework 4.3 has been released on 10 June 2016 and was supported until 2020.<ref>{{cite web|url=https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-Versions#supported-versions|title=Spring Framework Versions: Supported Versions|website=github.com}}</ref> It was announced to ''"be the final generation within the general Spring 4 system requirements (Java 6+, Servlet 2.5+), [...]"''.<ref name="spring-4.2"/>
Spring 5 is announced to be built upon [[Reactive Streams]] compatible Reactor Core.<ref>{{cite web|url=http://spring.io/blog/2016/02/09/reactive-spring|title=Reactive Spring|publisher=Spring Blog|date=9 February 2016}}</ref>{{Obsolete source|reason=This source is from 2016, but Spring 5.0.x was already released and was called "a major release" in the book "Pro Spring 5" by Iuliana Cosmina, Rob Harrop, Chris Schaefer and Clarence Ho|date=June 2023}}
Spring Framework 6.0 has been released on 16 November 2022 and came with a Java 17+ baseline and a move to Jakarta EE 9+ (in the <code>jakarta</code> namespace), with a focus on the recently released Jakarta EE 10 [[API]]s such as Servlet 6.0 and JPA 3.1.<ref>{{cite web|url=https://spring.io/blog/2022/11/16/spring-framework-6-0-goes-ga|title=Spring Framework 6.0 goes GA|publisher=Spring Blog|date=16 November 2022}}</ref>
==Relationship with Jakarta Enterprise Beans (EJB)==
|