The Spring Blog

News and Events

Spring Session 1.1.0 RC1 Released

On behalf of the community, I’m pleased to announce the release of Spring Session 1.1.0.RC1. The release can be found in the Spring Milestone Repository (

This release contains lots of fixes and new features. You can find details in the What’s New in 1.1 The highlights of 1.1.0.RC1 have been included below:

We look forward to your feedback and if all goes well plan to release 1.1.0.RELEASE in the next few weeks.


We have adopted a Contributor Code of Conduct!

We have an exciting announcement to make!

The Spring projects are about developing fast, flexible Java apps.

But there’s a driving force behind the technology—its people. We open-source our projects to welcome our community into making Spring the best it can be.

Now we are taking another step in that direction. Each of the active Spring projects has adopted a Contributor Code of Conduct! You can look at the contributor code of conduct right here, and you’ll find a copy in each of our repositories on Github.


Spring Data Couchbase 2.0

This is a cross-post blog from Simon BASLÉ from Couchbase. You can find him on twitter (@simonbasle) or github. Learn more about Couchbase and the Couchbase Java SDK on the developer portal. Thanks again, Simon and great job to you and your team! -Josh

Spring Data Couchbase 2.0 is a rewrite of the original Spring Data Couchbase 1.4.x connector. It is based on the Couchbase Java 2.2 SDK and makes heavy use of the new query language N1QL (which was introduced in Couchbase Server 4.0) to offer more features for Spring Data users.


This Week in Spring - February 9th, 2016

Welcome to another installation of This Week in Spring! This week I’m in beautiful Stockholm, Sweden at the amazing JFokus conference. It’s also Shrove Tuesday here in Sweden and the custom is to over-indulge, so as I type this I am eating a Semla. I hope you too enjoy over-indulging on this week’s epic roundup!


SpringOne2GX 2015 replay: IoT Realized - The Connected Car v2

Recorded at SpringOne2GX
Presenters: Phil Berman, Michael Minella & Derrick Shields
Big Data Track

For this session we will explore the power of Spring XD in the context of the Internet of Things (IoT). We will look at a solution developed with Spring XD to stream real time analytics from a moving car using open standards. Ingestion of the real time data (location, speed, engine diagnostics, etc) into HDFS, analyzing it to provide highly accurate MPG and vehicle range prediction, as well as providing real time dashboards will all be covered. Coming out of this session, you’ll understand how Spring XD can serve as “Legos®” for the IoT. We’ve made some very cool updates to the app (multi-car support, uses Hadoop and Spark, and more). We also are hoping to be running our app on Cloud Foundry by the conference!


SpringOne2GX 2015 replay: Spring Data REST - Data Meets Hypermedia + Security

Recorded at SpringOne2GX 2015
Presenters: Greg Turnquist & Roy Clarkson
Data / Integration Track

Check out Spring Data REST, a library than can rapidly bridge your data access layer to a RESTful interface using hypermedia. See how you can build the backend for your startup rapidly using top notch practices. We will then look at Spring-A-Gram, a sample application built with Spring Data REST and secured by Spring Security. Snap pictures from your laptop or smartphone and upload them to the server with little effort.


SpringOne2GX 2015 replay: HTTP/2 for the Web developer

Recorded at SpringOne2GX 2015
Presenter: Brian Clozel
Web / Javascript Track

The HTTP/2 spec is here - clients are servers are racing to implement it, while browser support is increasing everyday… The JVM world is already working on it in the Servlet 4.0 and JDK9 specs. But we developers, are still trying to understand the implications of it.

Should we reconsider the way we build JavaScript applications and optimize them for front-end performance? Will our server application have new roles and abilities?


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.


Orchestrating Work with Activiti and Spring Integration

I received an email recently that asked about how to forward control from a wait-state in an Activiti (which is an open-source BPMN2 workflow engine from Alfresco) to a Spring Integration flow and then resume execution of the Activiti workflow process upon completion of some work in Spring Integration.

To really appreciate why this is useful goal, we need some background.

What is Activiti

Activiti is a business process engine. It’s basically a directed graph of nodes (states) that model the states of a complex business process. It keeps track of the progression of work described in a business process. It describe automatic- and human-based actors in a system. It also supports interrogating the business process engine to ask questions about the process instances underway: how many of them are there, which ones are stalled, etc. Business Process Management Systems (BPMS) offer many advantages, some of which are: