Skip to content

Commit c078e2e

Browse files
committed
Overview with explicit JDK 9 (Jigsaw) and Java EE 8 references
1 parent 255ccf5 commit c078e2e

File tree

3 files changed

+38
-22
lines changed

3 files changed

+38
-22
lines changed

src/docs/asciidoc/appendix.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ link:{wiki-spring-framework}/++What's-New-in-the-Spring-Framework++[Wiki page].
1414

1515

1616
[[migration-4.x]]
17-
== Migrating to Spring Framework 4.x
17+
== Migrating to Spring Framework 4.3 / 5.0
1818
Migration guides for upgrading from previous releases of the Spring Framework are now provided as a
1919
{wiki-spring-framework}/Migrating-from-earlier-versions-of-the-spring-framework[Wiki page].
2020

src/docs/asciidoc/data-access.adoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5098,10 +5098,10 @@ chapter will then cover the other ORM technologies, showing briefer examples the
50985098

50995099
[NOTE]
51005100
====
5101-
As of Spring 5.0, Spring requires Hibernate ORM 4.3 or later for JPA support and even
5102-
Hibernate ORM 5.0+ for programming against the native Hibernate Session API. Note that
5103-
the Hibernate team does not maintain any versions prior to 5.0 anymore and is likely
5104-
to focus on 5.2+ exclusively soon.
5101+
As of Spring Framework 5.0, Spring requires Hibernate ORM 4.3 or later for JPA support
5102+
and even Hibernate ORM 5.0+ for programming against the native Hibernate Session API.
5103+
Note that the Hibernate team does not maintain any versions prior to 5.0 anymore and
5104+
is likely to focus on 5.2+ exclusively soon.
51055105
====
51065106

51075107

src/docs/asciidoc/overview.adoc

Lines changed: 33 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@
44
= Spring Framework Overview
55

66
Spring makes it easy to create Java enterprise applications. It provides everything you
7-
need beyond the Java language itself. It also provides extensions and support for
8-
applications created in Groovy and Kotlin.
7+
need to embrace the Java language in an enterprise environment, with support for Groovy
8+
and Kotlin as alternative languages on the JVM, and with the flexibility to create many
9+
kinds of architectures depending on an application's needs. As of Spring Framework 5.0,
10+
Spring requires JDK 8+ (Java SE 8+) and provides out-of-the-box support for JDK 9 already.
911

10-
Spring supports a wide range of application scenarios. In a large enterprise, applications
12+
Spring supports a wide range of application scenarios. In a large enterprise, applications
1113
often exist for a long time and have to run on a JDK and application server whose upgrade
1214
cycle is beyond developer control. Others may run as a single jar with the server embedded,
1315
possibly in a cloud environment. Yet others may be standalone applications (such as batch
@@ -19,45 +21,59 @@ evolve over a very long time.
1921

2022
== What We Mean by "Spring"
2123

22-
The term, "Spring," means different things in different contexts. It can be used to refer to
24+
The term "Spring" means different things in different contexts. It can be used to refer to
2325
the Spring Framework project itself, which is where it all started. Over time, other Spring
24-
projects have been built on top of the Spring Framework. Most often, when people say,
25-
Spring,” they mean the entire family of projects. This reference documentation focuses on
26-
the Spring Framework.
26+
projects have been built on top of the Spring Framework. Most often, when people say
27+
"Spring", they mean the entire family of projects. This reference documentation focuses on
28+
the foundation: the Spring Framework itself.
2729

2830
The Spring Framework is divided into modules. Applications can choose which modules they need.
2931
At the heart are the modules of the core container, including a configuration model and a
3032
dependency injection mechanism. Beyond that, the Spring Framework provides foundational
3133
support for different application architectures, including messaging, transactional data and
32-
persistence, and web. It also includes the servlet-based Spring MVC web framework and, in
34+
persistence, and web. It also includes the Servlet-based Spring MVC web framework and, in
3335
parallel, the Spring WebFlux reactive web framework.
3436

37+
A note about modules: Spring's framework jars allow for deployment to JDK 9's module path
38+
("Jigsaw"). For use in Jigsaw-enabled applications, the Spring Framework 5 jars come with
39+
"Automatic-Module-Name" manifest entries which define stable language-level module names
40+
("spring.core", "spring.context" etc) independent from jar artifact names (the jars follow
41+
the same naming pattern with "-" instead of ".", e.g. "spring-core" and "spring-context").
42+
Of course, Spring's framework jars keep working fine on the classpath on both JDK 8 and 9.
43+
3544
== History of Spring and the Spring Framework
3645

3746
Spring came into being in 2003 as a response to the complexity of the early
3847
https://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition[J2EE] specifications.
3948
While some consider Java EE and Spring to be in competition, Spring is, in fact, complementary
40-
to Java EE. Spring does not support every Java EE specification. Rather, it integrates with
41-
a carefully selected subset of the most widely used Java EE specifications:
49+
to Java EE. The Spring programming model does not embrace the Java EE platform specification;
50+
rather, it integrates with carefully selected individual specifications from the EE umbrella:
4251

43-
* JPA (https://jcp.org/en/jsr/detail?id=338[JSR 338])
44-
* JMS (https://jcp.org/en/jsr/detail?id=914[JSR 914])
4552
* Servlet API (https://jcp.org/en/jsr/detail?id=340[JSR 340])
46-
* WebSockets (https://www.jcp.org/en/jsr/detail?id=356[JSR 356])
53+
* WebSocket API (https://www.jcp.org/en/jsr/detail?id=356[JSR 356])
54+
* Concurrency Utilities (https://www.jcp.org/en/jsr/detail?id=236[JSR 236])
4755
* JSON Binding API (https://jcp.org/en/jsr/detail?id=367[JSR 367])
4856
* Bean Validation (https://jcp.org/en/jsr/detail?id=303[JSR 303])
57+
* JPA (https://jcp.org/en/jsr/detail?id=338[JSR 338])
58+
* JMS (https://jcp.org/en/jsr/detail?id=914[JSR 914])
59+
* as well as JTA/JCA setups for transaction coordination, if necessary.
4960

5061
The Spring Framework also supports the Dependency Injection
5162
(https://www.jcp.org/en/jsr/detail?id=330[JSR 330]) and Common Annotations
5263
(https://jcp.org/en/jsr/detail?id=250[JSR 250]) specifications, which application developers
53-
can choose to use instead of the same mechanisms provided by the Spring Framework.
64+
may choose to use instead of the Spring-specific mechanisms provided by the Spring Framework.
65+
66+
As of Spring Framework 5.0, Spring requires the Java EE 7 level (e.g. Servlet 3.1+, JPA 2.1+)
67+
as a minimum - while at the same time providing out-of-the-box integration with newer APIs
68+
at the Java EE 8 level (e.g. Servlet 4.0, JSON Binding API) when encountered at runtime.
69+
This keeps Spring fully compatible with e.g. Tomcat 8 and 9, WebSphere 9, and JBoss EAP 7.
5470

5571
Over time, the role of Java EE in application development has evolved. In the early days of
5672
Java EE and Spring, applications were created to be deployed to an application server.
5773
Today, with the help of Spring Boot, applications are created in a devops- and
58-
cloud-friendly way, with the servlet container embedded and trivial to change.
59-
As of Spring 5, a WebFlux application does not even use the Servlet API directly and can
60-
run on servers (such as Netty) that are not servlet containers.
74+
cloud-friendly way, with the Servlet container embedded and trivial to change.
75+
As of Spring Framework 5, a WebFlux application does not even use the Servlet API directly
76+
and can run on servers (such as Netty) that are not Servlet containers.
6177

6278
Spring continues to innovate and to evolve. Beyond the Spring Framework, there are other
6379
projects, such as Spring Boot, Spring Security, Spring Data, Spring Cloud, Spring Batch,

0 commit comments

Comments
 (0)