New in Spring 5: Functional Web Framework

As mentioned yesterday in Juergen’s blog post, the second milestone of Spring Framework 5.0 introduced a new functional web framework. In this post, I will give more information about the framework.

Keep in mind the functional web framework is built on the same reactive foundation that we provided in M1 and on which we also support annotation-based (i.e. @Controller, @RequestMapping) request handling, see the M1 blog post for more on that.


We start with some excerpts from our sample application. Below is a reactive repository that exposes Person objects. It is quite similar to a traditional, non-reactive repository, except that it returns Flux<Person> where you would return a List<Person> traditionally, and Mono<Person> where you would return a Person. Mono<Void> is used as a completion signal: to indicate when the save has been completed. For more information on these Reactor types, refer to Dave’s blog post.

Read more

Spring Framework 5.0 M2 released

Dear Spring community,

It is my pleasure to announce that the second Spring Framework 5.0 milestone is available now: Check for how to obtain it from our milestone repository, and keep your feedback coming!

This release introduces a functional web endpoint variant, based on the same foundation as our reactive @Controller model (introduced in 5.0 M1). Stay tuned for Arjen’s dedicated blog post, coming up tomorrow! Here’s a teaser…

RouterFunction<String> route =
        request -> Response.ok().body(fromObject("Hello World")));
Read more

Spring Boot 1.4.1 and 1.3.8 Available Now

It is my pleasure to announce that Spring Boot 1.4.1 and 1.3.8 haven been released and are available now from and Maven Central.

Spring Boot 1.3.8 includes 35 fixes and a selection of improvements and dependency upgrades. The first maintenance release of the 1.4 line contains over 150 fixes, improvements and 3rd party dependency updates! Thanks to all that have contributed!

What’s new?

We snuck in a few major improvements such as a new FailureAnalyzer for NoSuchBeanDefinitionException. If your code expects a bean to be present (typically via auto-configuration), you should now get a nice error message if it isn’t:

Read more

This Week in Spring - September 20, 2016

Hello world! Since we last talked, I’ve been in multiple cities in China, including Hangzhou, Shanghai, Beijing, Guangzhou, Shenzhen and Hong Kong, talking to customers and community members alike. It’s fascinating to see what our amazing customers in China do with our technologies in the hypercompetitive Chinese market. And, tasty!

Read more

Spring for Apache Kafka 1.1 GA and Spring Integration Kafka 2.1 GA are Available

I am pleased to announce that the Spring for Apache Kafka 1.1.0.RELEASE is now available in the spring release repo and Maven Central.

Due to some community requirements, we decided to bypass the Release Candidate (RC) phase and released General Availability (GA) immediately.

There are not many changes since the previous Milestone 2, but here is a summary of all Spring Kafka 1.1 changes:

  • Apache Kafka 0.10 upgrade;

  • The batch of messages support via BatchMessageListener as well as via @KafkaListener annotation configuration;

  • The null payload concept support via KafkaNull placeholder object;

  • You can now perform seek operations from the listener - this allows setting an initial offset when partitions are assigned by Kafka when using group management. You can also perform arbitrary seek operations after initialization;

  • Allow setting the initial offset to be relative to the current offset;

  • The KafkaTemplate now provides access to the metrics and partitionsFor methods on the Producer.

Read more

Spring Integration 4.3.2 is Available

I’m pleased to announce that Spring Integration maintenance version 4.3.2 has been released. It is available in the spring release repo and Maven Central. It’s strongly recommended for everyone to upgrade because of the bug fixes and improvements contained in the release.

While you can find all the changes for 4.3.2 in its Release Notes, here are some highlights:

  • It is a foundation for upcoming Spring Boot 1.4.1;

  • The RmiOutboundGateway now can be supplied with RmiProxyFactoryBeanConfigurer to get access to underlying RmiProxyFactoryBean for customization, e.g. ContextPropagatingRemoteInvocationFactory;

  • Added TcpConnectionFailedEvent - An event emitted when a connection could not be established for some reason;

  • The spring.integration.readOnly.headers global integration property to let to exclude some headers from replying, e.g. undesired or incompatible contentType, populated by some transformers by default.

Read more

Spring Framework 4.3.3 and 4.2.8 available now

On behalf of the team, I am happy to announce that the Spring Framework 4.3.3 and 4.2.8 maintenance releases are available now.

This third maintenance release of the 4.3 line contains over 60 fixes and improvements and is the base for the upcoming Spring Boot 1.4.1 release later this week. We’ll also release another Spring Framework 5.0 milestone Wednesday so stay tuned for more release announcements!

Project Page | GitHub | Issues | Documentation

Read more

Spring Cloud Data Flow 1.1 M1 and 1.0.1 GA released

On behalf of the team, I am excited to announce the release of the first milestone of Spring Cloud Data Flow 1.1 along with a 1.0.1 maintenance release for the 1.0 version.

Note: A great way to start using this new release(s) is to follow the release matrix on the project page, which includes the download coordinates and the links to the reference guide.

1.1 M1 release

Over the last few weeks, we have added new features and improvements to the overall orchestration of data microservices. The following new features were included in the 1.1.0.M1 release:

Read more

Java DSL for Spring Integration 1.2 Milestone 2 is available

I’m pleased to announce that the Java DSL for Spring Integration 1.2 M2 is available now!

First of all I’d like to thank everyone who created issues, raised Pull Requests, provided feedback or just asked questions on StackOverflow. Especial thanks for early adopters since the previous Milestone 1. With their help we have improved and fixed some issues with runtime flow registration.

The artifact org.springframework.integration:spring-integration-java-dsl:1.2.0.M2 is available in the Milestone repo. So, give it a shot and don’t hesitate to raise a GH issue for any feedback!

Read more

Spring Cloud Camden RC1 is Available

On behalf of the team, I am pleased to announce that Release Candidate 1 (RC1) of the Spring Cloud Camden Release Train is available today. The release can be found in our Spring Milestone repository. This is mostly a bug fix release as Camden prepares for General Availability (GA). You can check out the Camden release notes for more information.

Notable Changes in the Camden Release Train

Spring Cloud Contract is a new project that provides support for Consumer Driven Contracts and service schemas in Spring applications. Spring Cloud Netflix supports customization of Ribbon component classes via properties, uses the new community maintained OpenFeign and made various fixes and improvements to Zuul. Spring Cloud Consul adds support for Spring Cloud Bus using Consul’s event api. The CLI adds a spring cloud command to start various Spring Cloud servers with a single command. Supported servers include Eureka, Config Server and Hystrix Dashboard.

Read more