Spring Team
Rossen Stoyanchev

Rossen Stoyanchev

Spring Framework committer

Jersey City, NJ

Blog Posts by Rossen Stoyanchev

Spring Web Flow 2.5 released

Spring Web Flow 2.5 is now GA and available for use. This release provides an upgrade path for applications using Web Flow to Spring Framework 5 with Java 8, Servlet 3.1, Hibernate 5, Tiles 3, and JSF 2.2 as minimum requirements.


Spring Web Flow 2.5 RC1 is available

The first and only release candidate planned for Spring Web Flow 2.5 is now available from the Spring Milestones repository. The samples repository has been updated to use it.

This release provides an upgrade path to Spring Framework 5 along with Java 8, Servlet 3.1, Hibernate 5, Tiles 3, and JSF 2.2 as minimum requirements.

In this release “spring-js” has been merged with “spring-webflow” so there is no longer a separate “spring-js” module. As a result some configuration classes have changed packages. The “spring-js-resources” module is still available but as an optional module that must be included explicitly if needed.


Spring Web Flow 2.4.6 released

Spring Web Flow 2.4.6 was released earlier today containing a security fix. Applications that use explicit data bindings through the <binder> element in flow definitions are not affected. Those that do rely on default bindings should upgrade as soon as possible.


Spring Framework 5.0 M5 Update

An update on the 5th and last milestone of Spring Framework 5.0…

Spring MVC and Spring WebFlux

The name Spring MVC is both well known and widely used but it may surprise a few there is no actual project or independent distribution with that name. Rather it is a module within the Spring Framework distribution called spring-webmvc. Here is another trivia question. Did you know that the top-level package in the module does not feature “mvc”? Rather it is called org.springframework.web.servlet. Practically speaking those are details that we don’t have to remember. What matters is that we have a short and memorable name to refer to Spring’s Servlet stack based web framework.


Reactive Programming with Spring 5.0 M1

As Juergen mentioned in his Spring Framework 5 M1 release announcement our Spring Reactive initiative has been merged into Spring Framework proper preserving all contributions and its full history over more than a year.

What is it?

In a nutshell reactive programming is about non-blocking, event-driven applications that scale with a small number of threads with backpressure as a key ingredient that aims to ensure producers do not overwhelm consumers. The Reactive Streams specification (also adopted in Java 9) enables the ability to communicate demand across layers and libraries from different providers. For example an HTTP connection writing to a client can communicate its availability to write all the way upstream to a data repository fetching data from a database so that given a slow HTTP client the repository can slow down too or even pause. For a more extensive introduction to reactive programming check Dave Syer’s multipart series “Notes on Reactive Programming”.


Spring Web Flow 2.4.4 released

A new Spring Web Flow 2.4.4 maintenance release is now available for download or use from Maven and Gradle builds. This release extends compatibility to Hibernate 5.2 and also includes several mainly JSF related fixes.


Reactive Spring

At SpringOne2GX 2015, Juergen announced plans for Spring Framework 5 with a major focus on reactive architectures. Concrete efforts are already underway and a lot has happened since!

At the most basic level, reactive programming models allow for writing non-blocking services and applications. This requires a fundamental shift from writing imperative logic to async, non-blocking, functional-style code, in particular when interacting with external resources.

Reactive Web Applications

Most Java web applications are built on the Servlet API which was originally created with synchronous and blocking semantics. Over the years, support for asynchronous requests (Servlet 3.0) and non-blocking I/O (Servlet 3.1) was added. In Spring MVC, we’ve found that it is feasible to add selective async HTTP request handling to existing applications. However, we’ve also found that it is very hard to introduce non-blocking I/O within an existing ecosystem of web frameworks and applications. Doing so requires very deep change all the way to the core contracts which need to switch from blocking to async semantics.


Spring Web Flow 2.4.2 released

A minor maintenance release of Spring Web Flow is now available for use. The release addresses compatibility issues against Spring Security 4.0 and the Mojarra and Apache MyFaces JSF implementations. For a list of the addressed issues see the release notes JIRA report.


Spring Framework 4.1 -- Spring MVC Improvements

Recently Juergen Hoeller
announced the availability
of the first of two 4.1 release candidates.
Brian Clozel followed up with a post on the
static web resources handling enhancements.
Previously Stephane Nicoll blogged about
cache and
JMS related improvements.
The goal of this post is to summarize Spring MVC improvements.

The JDK 1.8 java.util.Optional is now supported for @RequestParam, @RequestHeader and
@MatrixVariable controller method arguments while ListenableFuture is supported as a
return value alternative to DeferredResult where an underlying
service (or perhaps a call to AsyncRestTemplate) already returns ListenableFuture.