{"id":554564,"date":"2026-03-23T04:07:08","date_gmt":"2026-03-23T04:07:08","guid":{"rendered":"https:\/\/www.newsbeep.com\/ca\/554564\/"},"modified":"2026-03-23T04:07:08","modified_gmt":"2026-03-23T04:07:08","slug":"spring-news-roundup-third-milestone-releases-of-boot-security-integration-ai-and-amqp","status":"publish","type":"post","link":"https:\/\/www.newsbeep.com\/ca\/554564\/","title":{"rendered":"Spring News Roundup: Third Milestone Releases of Boot, Security, Integration, AI and AMQP"},"content":{"rendered":"<p>There was a flurry of activity in the Spring ecosystem during the week of March 16th, 2026, highlighting the third milestone releases of: Spring Boot, Spring Security, Spring Integration, Spring AI and Spring AMQP; along with the second milestone releases of Spring Data and Spring for Apache Kafka.<\/p>\n<p>Spring Boot<\/p>\n<p>The <a href=\"https:\/\/spring.io\/blog\/2026\/03\/20\/spring-boot-4-1-0-M3-available-now\" rel=\"nofollow noopener\" target=\"_blank\">third milestone release<\/a> of <a href=\"https:\/\/spring.io\/projects\/spring-boot\" rel=\"nofollow noopener\" target=\"_blank\">Spring Boot<\/a> 4.1.0 delivers bug fixes, documentation improvements, dependency upgrades and new features such as: support for the <a href=\"https:\/\/www.amqp.org\/resources\/specifications \" rel=\"nofollow noopener\" target=\"_blank\">AMQP 1.0<\/a> specification that includes auto-configuration of the <a href=\"https:\/\/docs.spring.io\/spring-amqp\/docs\/4.1.0-M3\/api\/org\/springframework\/amqp\/client\/AmqpConnectionFactory.html\" rel=\"nofollow noopener\" target=\"_blank\">AmqpConnectionFactory<\/a> and <a href=\"https:\/\/docs.spring.io\/spring-amqp\/docs\/4.1.0-M3\/api\/org\/springframework\/amqp\/client\/AmqpClient.html\" rel=\"nofollow noopener\" target=\"_blank\">AmqpClient<\/a> interfaces; and auto-configuration for <a href=\"https:\/\/spring.io\/projects\/spring-batch\" rel=\"nofollow noopener\" target=\"_blank\">Spring Batch<\/a> using MongoDB with a new <a href=\"https:\/\/central.sonatype.com\/artifact\/org.springframework.boot\/spring-boot-batch-data-mongodb\" rel=\"nofollow noopener\" target=\"_blank\">spring-boot-batch-data-mongo<\/a> module. More details on this release may be found in the <a href=\"https:\/\/github.com\/spring-projects\/spring-boot\/releases\/tag\/v4.1.0-M3\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a> and this <a href=\"https:\/\/github.com\/spring-projects\/spring-boot\/wiki\/Spring-Boot-4.1.0-M3-Release-Notes\" rel=\"nofollow noopener\" target=\"_blank\">wiki page<\/a>.<\/p>\n<p>Spring Data<\/p>\n<p>The <a href=\"https:\/\/spring.io\/blog\/2026\/03\/13\/spring-data-2026-0-0-M2-released\" rel=\"nofollow noopener\" target=\"_blank\">second milestone release<\/a> of <a href=\"https:\/\/spring.io\/projects\/spring-data\" rel=\"nofollow noopener\" target=\"_blank\">Spring Data<\/a> 2026.0.0 ships with notable changes such as: a new <a href=\"https:\/\/docs.spring.io\/spring-data\/redis\/reference\/4.1\/api\/java\/org\/springframework\/data\/redis\/annotation\/EnableRedisListeners.html\" rel=\"nofollow noopener\" target=\"_blank\">@EnableRedisListeners<\/a> annotation, in <a href=\"https:\/\/spring.io\/projects\/spring-data-redis\" rel=\"nofollow noopener\" target=\"_blank\">Spring Data Redis<\/a>, that enables listener endpoints for publication and subscription; a new bulkWrite() method, added to the <a href=\"https:\/\/docs.spring.io\/spring-data\/mongodb\/reference\/5.1\/api\/java\/org\/springframework\/data\/mongodb\/core\/MongoOperations.html\" rel=\"nofollow noopener\" target=\"_blank\">MongoOperations<\/a> interface in <a href=\"https:\/\/spring.io\/projects\/spring-data-mongodb\" rel=\"nofollow noopener\" target=\"_blank\">Spring Data MongoDB<\/a>, that allows for a mix of insert, update and delete operations in one method call; and new compare-and-set and compare-and-delete functionality, for users of <a href=\"https:\/\/redis.io\/docs\/latest\/develop\/whats-new\/8-4\/\" rel=\"nofollow noopener\" target=\"_blank\">Redis 8.4<\/a>, with new set and delete operations that allows for configuring the command conditions and expiration.<\/p>\n<p>Spring Security<\/p>\n<p>The <a href=\"https:\/\/spring.io\/blog\/2026\/03\/19\/spring-security-6-5-9-and-7-0-4-and-7-1-0-M3-available-now\" rel=\"nofollow noopener\" target=\"_blank\">third milestone release<\/a> of <a href=\"https:\/\/spring.io\/projects\/spring-security\" rel=\"nofollow noopener\" target=\"_blank\">Spring Security<\/a> 7.1.0 provides bug fixes, dependency upgrades and new features such as: a new <a href=\"https:\/\/docs.spring.io\/spring-security\/reference\/7.1\/api\/java\/org\/springframework\/security\/messaging\/access\/expression\/MessageExpressionAuthorizationManager.html\" rel=\"nofollow noopener\" target=\"_blank\">MessageExpressionAuthorizationManager<\/a> class for authorization of an expression-based message to a public API; and a new <a href=\"https:\/\/docs.spring.io\/spring-security\/reference\/7.1\/api\/java\/org\/springframework\/security\/web\/util\/matcher\/InetAddressMatcher.html\" rel=\"nofollow noopener\" target=\"_blank\">InetAddressMatcher<\/a> interface that allows for general reuse by extracts logic for matching a Java <a href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/26\/docs\/api\/java.base\/java\/net\/InetAddress.html\" rel=\"nofollow noopener\" target=\"_blank\">InetAddress<\/a> class from the Jakarta Servlet <a href=\"https:\/\/jakarta.ee\/specifications\/servlet\/6.1\/apidocs\/jakarta.servlet\/jakarta\/servlet\/http\/httpservletrequest\" rel=\"nofollow noopener\" target=\"_blank\">HttpServletRequest<\/a> class.<\/p>\n<p>This release also addresses <a href=\"https:\/\/spring.io\/security\/cve-2026-22732\" rel=\"nofollow noopener\" target=\"_blank\">CVE-2026-22732<\/a>, a vulnerability that allows an attacker to expose sensitive data via caching mechanisms due to HTTP headers not being written while specifying HTTP response headers for servlet applications using Spring Security.<\/p>\n<p>Further details on this release may be found in the <a href=\"https:\/\/github.com\/spring-projects\/spring-security\/releases\/tag\/7.1.0-M3\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n<p>Spring Integration<\/p>\n<p>The <a href=\"https:\/\/spring.io\/blog\/2026\/03\/18\/spring-integration-7-1-0-m3-available\" rel=\"nofollow noopener\" target=\"_blank\">third milestone release<\/a> of <a href=\"https:\/\/spring.io\/projects\/spring-integration\" rel=\"nofollow noopener\" target=\"_blank\">Spring Integration<\/a> 7.1.0 delivers bug fixes, documentation improvements, dependency upgrades and new features such as: a new <a href=\"https:\/\/docs.spring.io\/spring-integration\/docs\/7.1.0-M3\/api\/org\/springframework\/integration\/cloudevents\/dsl\/CloudEventHeadersBuilder.html\" rel=\"nofollow noopener\" target=\"_blank\">CloudEventHeadersBuilder<\/a> class that exposes a builder through the headers() method, defined in the <a href=\"https:\/\/docs.spring.io\/spring-integration\/docs\/7.1.0-M3\/api\/org\/springframework\/integration\/cloudevents\/dsl\/CloudEvents.html\" rel=\"nofollow noopener\" target=\"_blank\">CloudEvents<\/a> class, to configure cloud event headers with direct values; and a replacement of using the Java <a href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/26\/docs\/api\/java.base\/java\/util\/concurrent\/TimeUnit.html\" rel=\"nofollow noopener\" target=\"_blank\">TimeUnit<\/a> enum class with the Java <a href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/26\/docs\/api\/java.base\/java\/time\/Duration.html\" rel=\"nofollow noopener\" target=\"_blank\">Duration<\/a> class in all of the RedisQueue* classes. More details on this release may be found in the <a href=\"https:\/\/github.com\/spring-projects\/spring-integration\/releases\/tag\/v7.1.0-M3\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n<p>Spring AI<\/p>\n<p>The <a href=\"https:\/\/spring.io\/blog\/2026\/03\/17\/spring-ai-2-0-0-M3-and-1-1-3-and-1-0-4-available\" rel=\"nofollow noopener\" target=\"_blank\">third milestone release<\/a> of <a href=\"https:\/\/spring.io\/projects\/spring-ai\" rel=\"nofollow noopener\" target=\"_blank\">Spring AI<\/a> 2.0.0 ships with bug fixes, documentation improvements, dependency upgrades and new features such as: a new <a href=\"https:\/\/docs.spring.io\/spring-ai\/docs\/2.0.0-M3\/api\/org\/springframework\/ai\/mcp\/customizer\/McpClientCustomizer.html\" rel=\"nofollow noopener\" target=\"_blank\">McpClientCustomizer<\/a> interface that allows for customizing a named client component; an improved, more generic, builder pattern in the <a href=\"https:\/\/docs.spring.io\/spring-ai\/docs\/2.0.0-M3\/api\/org\/springframework\/ai\/zhipuai\/ZhiPuAiChatOptions.html\" rel=\"nofollow noopener\" target=\"_blank\">ZhiPuAiChatOptions<\/a> class for a more flexible configuration; and a new builder pattern added to the <a href=\"https:\/\/docs.spring.io\/spring-ai\/docs\/2.0.0-M3\/api\/org\/springframework\/ai\/ollama\/api\/OllamaChatOptions.html\" rel=\"nofollow noopener\" target=\"_blank\">OllamaChatOptions<\/a> class for more flexible configuration options. Further details on this release, including breaking changes, may be found in the <a href=\"https:\/\/github.com\/spring-projects\/spring-ai\/releases\/tag\/v2.0.0-M3\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n<p>Spring AMQP<\/p>\n<p>The <a href=\"https:\/\/spring.io\/blog\/2026\/03\/18\/spring-amqp-4-1-0-m3-available\" rel=\"nofollow noopener\" target=\"_blank\">third milestone release<\/a> of <a href=\"https:\/\/spring.io\/projects\/spring-amqp\" rel=\"nofollow noopener\" target=\"_blank\">Spring AMQP<\/a> 4.1.0 provides bug fixes, documentation improvements, dependency upgrades and new features such as: a new <a href=\"https:\/\/github.com\/spring-projects\/spring-amqp\/blob\/main\/spring-amqp-client\/src\/main\/java\/org\/springframework\/amqp\/client\/annotation\/AmqpListener.java\" rel=\"nofollow noopener\" target=\"_blank\">@AmqpListener<\/a> annotation to support the <a href=\"https:\/\/www.amqp.org\/resources\/specifications\" rel=\"nofollow noopener\" target=\"_blank\">AMQP 1.0<\/a> specification; and a new classic() method, added to the <a href=\"https:\/\/docs.spring.io\/spring-amqp\/docs\/4.1.0-M3\/api\/org\/springframework\/amqp\/core\/QueueBuilder.html\" rel=\"nofollow noopener\" target=\"_blank\">QueueBuilder<\/a> class, to ensure that a classic queue is set as a default queue if no argument is provided. More details on this release may be found in the <a href=\"https:\/\/github.com\/spring-projects\/spring-amqp\/releases\/tag\/v4.1.0-M3\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n<p>Spring for Apache Kafka<\/p>\n<p>The <a href=\"https:\/\/spring.io\/blog\/2026\/03\/17\/spring-kafka-4\" rel=\"nofollow noopener\" target=\"_blank\">second milestone release<\/a> of <a href=\"https:\/\/spring.io\/projects\/spring-kafka\" rel=\"nofollow noopener\" target=\"_blank\">Spring for Apache Kafka<\/a> 4.1.0 delivers bug fixes, dependency upgrades and new features such as: a new RENEW acknowledgement type and corresponding renew() method, added to the <a href=\"https:\/\/docs.spring.io\/spring-kafka\/docs\/4.1.0-M2\/api\/org\/springframework\/kafka\/support\/ShareAcknowledgment.html\" rel=\"nofollow noopener\" target=\"_blank\">ShareAcknowledgment<\/a> interface, that extends the acquisition lock on a record when processing takes longer than the configured time; and improvements to the <a href=\"https:\/\/docs.spring.io\/spring-kafka\/docs\/4.1.0-M2\/api\/org\/springframework\/kafka\/listener\/ShareKafkaMessageListenerContainer.html\" rel=\"nofollow noopener\" target=\"_blank\">ShareKafkaMessageListenerContainer<\/a> class that add poll-level and listener-level error handling strategies. Further details on this release may be found in the <a href=\"https:\/\/github.com\/spring-projects\/spring-kafka\/releases\/tag\/v4.1.0-M2\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n<p>Spring Vault<\/p>\n<p>The <a href=\"https:\/\/spring.io\/blog\/2026\/03\/16\/spring-vault-4-1-0-m1-available\" rel=\"nofollow noopener\" target=\"_blank\">first milestone release<\/a> of <a href=\"https:\/\/spring.io\/projects\/spring-vault\" rel=\"nofollow noopener\" target=\"_blank\">Spring Vault<\/a> 4.1.0 ships with bug fixes, documentation improvements, dependency upgrades and new features such as: a new <a href=\"https:\/\/docs.spring.io\/spring-vault\/reference\/4.1\/api\/java\/org\/springframework\/vault\/core\/certificate\/CertificateContainer.html\" rel=\"nofollow noopener\" target=\"_blank\">CertificateContainer<\/a> class to to issue, obtain and manage certificate bundles; a new <a href=\"https:\/\/docs.spring.io\/spring-vault\/reference\/4.1\/api\/java\/org\/springframework\/vault\/core\/lease\/ManagedSecret.html\" rel=\"nofollow noopener\" target=\"_blank\">ManagedSecret<\/a> class and <a href=\"https:\/\/docs.spring.io\/spring-vault\/reference\/4.1\/api\/java\/org\/springframework\/vault\/core\/lease\/SecretsRegistry.html\" rel=\"nofollow noopener\" target=\"_blank\">SecretsRegistry<\/a> interface for a more simplified management of secrets, obtained from vault operations, using functional callbacks. More details on this release may be found in the <a href=\"https:\/\/github.com\/spring-projects\/spring-vault\/releases\/tag\/4.1.0-M1\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"There was a flurry of activity in the Spring ecosystem during the week of March 16th, 2026, highlighting&hellip;\n","protected":false},"author":2,"featured_media":554565,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[215038,44626,11777,49,48,4113,35858,39650,215037,215036,55428,215035,55431,61],"class_list":["post-554564","post","type-post","status-publish","format-standard","has-post-thumbnail","category-technology","tag-amqp","tag-apache-kafka","tag-architecture-design","tag-ca","tag-canada","tag-development","tag-java","tag-spring-ai","tag-spring-boot","tag-spring-data","tag-spring-integration","tag-spring-news-roundup-mar16-2026","tag-spring-security","tag-technology"],"_links":{"self":[{"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/posts\/554564","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/comments?post=554564"}],"version-history":[{"count":0,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/posts\/554564\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/media\/554565"}],"wp:attachment":[{"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/media?parent=554564"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/categories?post=554564"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/tags?post=554564"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}