The Spring Blog

News and Events

Spring Boot 1.5.21 available now

On behalf of the team and everyone who has contributed, I am pleased to announce that Spring Boot 1.5.21 has been released and is now available from and Maven Central.

Spring Boot 1.5.21 is a maintenance release that includes 9 dependency updates and selected bug fixes.

If you haven’t already upgraded to Spring Boot 2, please consider doing so as support for 1.x will end on August 1st 2019.

How can you help?

If you’re interested in helping out, check out the “ideal for contribution” tag in the issue repository. If you have general questions, please ask on using the spring-boot tag or chat with the community on Gitter.


Spring Data Moore M4, Lovelace SR8 and Ingalls SR22 released

I am pleased to announce the availability of Spring Data releases Moore M4, Lovelace SR8, and Ingalls SR22. Our releases build on the most recent Spring Framework releases and are going to be picked up by Spring Boot 2.2 M3, 2.1.5 and 1.5.21 respectively.

Moore M4 is also a pre-requisite for Spring Data R2DBC 1.0 M2. It ships with 70 tickets fixed. There are a few notable new features amongst these:

  • Support for reactive transaction management for MongoDB
  • Annotation-based Collation support for MongoDB
  • Reactive Index Operations in Elasticsearch and delete by query

Spring Integration 5.2 Milestone 2 Available

On behalf of Spring Integration team I am pleased to announce that Spring Integration 5.2.0.M2 is available.

It can be downloaded from our milestone repository:

compile "org.springframework.integration:spring-integration-core:5.2.0.M2"


  • The RSocket channel adapters are available now for full reactive network interaction between client and server. See spring-integration-rsocket module and RSocketInboundGateway & RSocketOutboundGateway JavaDocs, respectively

  • Kotlin Jsr223 scripting support has been added into spring-integration-scripting module

  • The CacheRequestHandlerAdvice was introduced to perform caching operations on the handleRequestMessage() method in the AbstractReplyProducingMessageHandler implementations

  • The RateLimiterRequestHandlerAdvice is also available for limiting access to the handleRequestMessage() method logic

  • The Splitter component now can be configured with a discardChannel to send those request messages for which a splitting function returns empty collection

  • The MailReceiver implementations can now be configured with the autoCloseFolder = false option to not close the mail folder just after fetching, allowing a proper mail message multi-part content processing

For more information see the What’s New chapter in the documentation and the change logs.

Any feedback, feature ideas, critics, bug reports and questions are welcome via appropriate communication channels:


Spring for Apache Kafka 2.3 Milestone 2

We are pleased to announce the availability of the second milestone of the Spring for Apache Kafka 2.3 release - 2.3.0.M2.


  • SeekToCurrentErrorHandler can be configured to not retry certain exceptions.

  • The new RecoveringDeserializationExceptionHandler can recover from failed deserialization operations in Kafka Streams applications, for example to send the failed message to a dead-letter topic.

  • The new HeaderEnricher transformer can be added to a Kafka Streams topology to add headers.

  • The new MessagingTransformer can be used to invoke a Spring Integration flow within a Kafka Streams topology.

  • The new AggregatingReplyingKafkaTemplate can send a record and wait for responses from multiple consumers.

For more information see the What’s New chapter in the documentation and the change logs.

In addition, Spring Integration for Apache Kafka (spring-integration-kafka) 3.2.0.M2 is available; it is based on Spring for Apache Kafka 2.3 and Spring Integration 5.2.

  • The KafkaMessageSource consumer can now be paused/resumed.

  • The KafkaMessageSource consumer can now be configured to retrieve multiple records on each poll.

  • XML configuration is now available for all components.

See the Spring Integration Chapter for more information.


Spring AMQP (Spring for RabbitMQ) 2.2 Milestone 2

We are pleased to announce the availability of the second milestone of the Spring AMQP 2.2 release - 2.2.0.M2.


  • Spring Data "Projection Interfaces" are now supported by the Jackson message converter.

  • @RabbitListener methods can now receive batched messages as a List<?> instead of one-at-a-time.

  • You can now override the default acknowledge mode and executor directly on the @RabbitListener annotation.

For more information, see the What’s New chapter and the change logs.


Spring Batch 4.2.0.M2 available now!

I am pleased to announce that Spring Batch 4.2.0.M2 is available now from our milestone repository.

What’s new?

This release adds a new item reader and a new item writer for Apache Kafka:

  • KafkaItemReader can read messages from a single partition or multiple partitions of the same topic. This reader stores message offsets in the ExecutionContext to support restart.
  • KafkaItemWriter uses a KafkaTemplate from the Spring for Apache Kafka project to send messages to a given topic.

I would like to thank Mathieu Ouellet for his amazing contribution in adding support for Apache Kafka in Spring Batch!


Spring Integration AWS 2.2 GA and Spring Cloud Stream Kinesis Binder 1.2 GA Available

Today it’s my pleasure to announce General Availability of Spring Integration for Amazon Web Services extension version 2.2.0 and Spring Cloud Stream Binder for AWS Kinesis version 1.2.0.

These releases can be downloaded from Maven Central, JCenter, and our release repository:

compile "org.springframework.integration:spring-integration-aws:2.2.0.RELEASE"

If you don’t use Kinesis Binder. Or via Binder dependency:

compile ""

The main theme of both these releases is about new functionality to support Kinesis Client and Kinesis Producer libraries. For this purpose the spring-integration-aws is shipped with KclMessageDrivenChannelAdapter and KplMessageHandler implementations, respectively. At the moment an implementation is based on the KCL v1.x, since not all AWS dependencies we use in the spring-integration-aws provide the AWS SKD v2 implementation. Based on the Kinesis Client Library investigation, an additional CheckpointMode.periodic has been introduced to both KclMessageDrivenChannelAdapter and KinesisMessageDrivenChannelAdapter.


Spring Framework 5.2.0.M2, 5.1.7, 5.0.14 and 4.3.24 available now

On behalf of the team and everyone who has contributed, I am pleased to announce that Spring Framework 5.2.0.M2, 5.1.7, 5.0.14 and 4.3.24 are available from as well as Maven Central now.

First things first, the second milestone of Spring Framework 5.2 includes over 50 fixes and improvements with improved RSocket integration and initial support for reactive transactions (more on that in a follow-up blog post soon). Spring Framework 5.1.7 includes 43 fixes and improvements and is a recommended upgrade for all 5.x users.


A Bootiful Podcast: Kotlin team engineer Roman Elisarov

Hi Spring fans! In today’s installment Josh Long (@starbuxman) sits down with Jetbrain’s Roman Elizarov (@relizarov). Roman works on the Kotlin team and, among other things, focuses on asynchronous programming with things like coroutines. This interview was a very detailed dive into the opportunities for asynchronous programming for Spring developers using Kotlin, especially in light of the new coroutine support coming in Spring Framework 5.2.

Twitter: Roman Elizarov (@relizarov)
A great blog by Sebastien Deleuze on our new support