Spring5

Spring 5 has been the first major release since last few years - They have adopted the revolutionary changes happening in the JDK world, completely re-written Spring Core, Added support for Kotlin, Support for Reactive programming, Testing framework support for better fitment with Junit 5 etc. At the same time, they have discontinued the support for some legacy features like bean.factory.access, NativeJDBC & staticMock has been moved to other packages, Support for Hibernate 3/4 (now support Hibernate 5), MVC’s Tiles 2 (now support Tiles 3). It has also removed support for some libraries like Velocity, Guava etc.

JDK Support:

Spring 5 is revamped to take advantage of Java 8 and above. The minimum JDK version that Spring 5 supports is Java 8. It has also upgrade to JEE 7 and therefore the minimums should be:

  • Servlet 3.1
  • JMS 2.0
  • JPA 2.1

WebFlux:

It is a non-blocking web stack to handle concurrency with a small number of threads and scale with fewer hardware resources. It is fully non-blocking, supports Reactive Streams back pressure, and runs on such servers as Netty, Undertow, and Servlet 3.1+ containers.

Reactor is the reactive library of choice for Spring WebFlux. It provides the Mono and Flux API types to work on data sequences of 0..1 (Mono) and 0..N (Flux) through a rich set of operators aligned with the ReactiveX vocabulary of operators. Reactor is a Reactive Streams library and, therefore, all of its operators support non-blocking back pressure. Reactor has a strong focus on server-side Java. It is developed in close collaboration with Spring.

WebFlux requires Reactor as a core dependency but it is interoperable with other reactive libraries via Reactive Streams.

Written on November 24, 2018