{"id":631168,"date":"2026-04-27T04:30:08","date_gmt":"2026-04-27T04:30:08","guid":{"rendered":"https:\/\/www.newsbeep.com\/ca\/631168\/"},"modified":"2026-04-27T04:30:08","modified_gmt":"2026-04-27T04:30:08","slug":"spring-news-roundup-first-release-candidates-of-boot-security-integration-modulith-amqp","status":"publish","type":"post","link":"https:\/\/www.newsbeep.com\/ca\/631168\/","title":{"rendered":"Spring News Roundup: First Release Candidates of Boot, Security, Integration, Modulith, AMQP"},"content":{"rendered":"<p>There was a flurry of activity in the Spring ecosystem during the week of April 20th, 2026, highlighting the first release candidates of: Spring Boot, Spring Security, Spring Integration, Spring Modulith, Spring AMQP, Spring for Apache Kafka and Spring Vault.<\/p>\n<p>Spring Boot<\/p>\n<p>The <a href=\"https:\/\/spring.io\/blog\/2026\/04\/23\/spring-boot-4-1-0-RC1-available-now\" rel=\"nofollow noopener\" target=\"_blank\">first release candidate<\/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 OpenTelemetry Protocol (OTLP) SDK <a href=\"https:\/\/opentelemetry.io\/docs\/languages\/sdk-configuration\/otlp-exporter\/\" rel=\"nofollow noopener\" target=\"_blank\">exporter environment variables<\/a>; and support the Spring Framework <a href=\"https:\/\/docs.spring.io\/spring-framework\/docs\/7.0.7\/javadoc-api\/org\/springframework\/jdbc\/datasource\/LazyConnectionDataSourceProxy.html\" rel=\"nofollow noopener\" target=\"_blank\">LazyConnectionDataSourceProxy<\/a> class for improved transaction management. More details on this release may be found in the <a href=\"https:\/\/github.com\/spring-projects\/spring-boot\/releases\/tag\/v4.1.0-RC1\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n<p>Spring Security<\/p>\n<p>The first release candidate of <a href=\"https:\/\/spring.io\/projects\/spring-security\" rel=\"nofollow noopener\" target=\"_blank\">Spring Security<\/a> 7.1.0 ships with bug fixes, dependency upgrades and new features such as: a new method, anyOf(), added to the <a href=\"https:\/\/docs.spring.io\/spring-security\/reference\/7.1\/api\/java\/org\/springframework\/security\/authorization\/AllRequiredFactorsAuthorizationManager.html\" rel=\"nofollow noopener\" target=\"_blank\">AllRequiredFactorsAuthorizationManager<\/a> class, that grants access to a resource via the <a href=\"https:\/\/docs.spring.io\/spring-security\/reference\/7.1\/api\/java\/org\/springframework\/security\/authorization\/AuthorizationManager.html\" rel=\"nofollow noopener\" target=\"_blank\">AuthorizationManager<\/a> interface; and support for the new Spring Framework <a href=\"https:\/\/docs.spring.io\/spring-framework\/docs\/7.0.7\/javadoc-api\/org\/springframework\/web\/filter\/PreFlightRequestFilter.html\" rel=\"nofollow noopener\" target=\"_blank\">PreFlightRequestFilter<\/a> class, a servlet filter that handles pre-flight requests. Further details on this release may be found in the <a href=\"https:\/\/github.com\/spring-projects\/spring-security\/releases\/tag\/7.1.0-RC1\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n<p>Spring Session<\/p>\n<p>The first release candidate of <a href=\"https:\/\/spring.io\/projects\/spring-session\" rel=\"nofollow noopener\" target=\"_blank\">Spring Session<\/a> 4.1.0 provides documentation improvements to reflect support for Spring Boot 4.x. More details on this release may be found in the <a href=\"https:\/\/github.com\/spring-projects\/spring-session\/releases\/tag\/4.1.0-RC1\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n<p>Spring Integration<\/p>\n<p>The <a href=\"https:\/\/spring.io\/blog\/2026\/04\/21\/spring-integration-7-1-0-rc1-available\" rel=\"nofollow noopener\" target=\"_blank\">first release candidate<\/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 refactor of the <a href=\"https:\/\/docs.spring.io\/spring-integration\/docs\/7.1.0-SNAPSHOT\/api\/org\/springframework\/integration\/redis\/util\/RedisLockRegistry.html\" rel=\"nofollow noopener\" target=\"_blank\">RedisLockRegistry<\/a> class that takes advantage of the Redis 8.4+ Compare-and-Set (CAS) and Compare-and-Delete (CAD) native commands for lock renewal and release; and improvements to the <a href=\"https:\/\/docs.spring.io\/spring-integration\/docs\/7.1.0-SNAPSHOT\/api\/org\/springframework\/integration\/jms\/config\/JmsChannelFactoryBean.html\" rel=\"nofollow noopener\" target=\"_blank\">JmsChannelFactoryBean<\/a> class that allows users to set a custom instance of the Spring Framework <a href=\"https:\/\/docs.spring.io\/spring-framework\/docs\/7.0.7\/javadoc-api\/org\/springframework\/jms\/core\/JmsTemplate.html\" rel=\"nofollow noopener\" target=\"_blank\">JmsTemplate<\/a> class instead of using the default. Further details on this release may be found in the <a href=\"https:\/\/github.com\/spring-projects\/spring-integration\/releases\/tag\/v7.1.0-RC1\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a> and this <a href=\"https:\/\/docs.spring.io\/spring-integration\/reference\/7.1\/whats-new.html\" rel=\"nofollow noopener\" target=\"_blank\">what&#8217;s new<\/a> page.<\/p>\n<p>Spring Modulith<\/p>\n<p>The <a href=\"https:\/\/spring.io\/blog\/2026\/04\/24\/spring-modulith-2-1-rc1-2-0-6-and-1-4-11-released\" rel=\"nofollow noopener\" target=\"_blank\">first release candidate<\/a> of <a href=\"https:\/\/spring.io\/projects\/spring-modulith\" rel=\"nofollow noopener\" target=\"_blank\">Spring Modulith<\/a> 2.1.0 ships with bug fixes, dependency upgrades and improvements such as: a new <a href=\"https:\/\/github.com\/spring-projects\/spring-modulith\/blob\/main\/spring-modulith-test\/src\/main\/java\/org\/springframework\/modulith\/test\/ModuleSlicing.java\" rel=\"nofollow noopener\" target=\"_blank\">@ModuleSlicing<\/a> annotation that eliminates integration test failures on multiple types annotated with <a href=\"https:\/\/docs.spring.io\/spring-boot\/4.1\/api\/java\/org\/springframework\/boot\/autoconfigure\/SpringBootApplication.html\" rel=\"nofollow noopener\" target=\"_blank\">@SpringBootApplication<\/a>; and improved transaction handling in <a href=\"https:\/\/www.jobrunr.io\/en\/\" rel=\"nofollow noopener\" target=\"_blank\">JobRunr<\/a> by decorating the Java <a href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/25\/docs\/api\/java.sql\/javax\/sql\/DataSource.html\" rel=\"nofollow noopener\" target=\"_blank\">DataSource<\/a> interface, fed into the JobRunr <a href=\"https:\/\/github.com\/jobrunr\/jobrunr\/blob\/master\/core\/src\/main\/java\/org\/jobrunr\/storage\/StorageProvider.java\" rel=\"nofollow noopener\" target=\"_blank\">StorageProvider<\/a> interface, to ensure that Spring transactions are considered as expected for event externalization. More details on this release may be found in the <a href=\"https:\/\/github.com\/spring-projects\/spring-modulith\/releases\/tag\/2.1.0-RC1\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n<p>Spring AMQP<\/p>\n<p>The first release candidate of <a href=\"https:\/\/spring.io\/projects\/spring-amqp\" rel=\"nofollow noopener\" target=\"_blank\">Spring AMQP<\/a> 4.1.0 provides bug fixes, dependency upgrades and new features such as: a new method, setStopListenerOnFatal(), added to the <a href=\"https:\/\/docs.spring.io\/spring-amqp\/docs\/4.1.0-SNAPSHOT\/api\/org\/springframework\/amqp\/listener\/ConditionalRejectingErrorHandler.html\" rel=\"nofollow noopener\" target=\"_blank\">ConditionalRejectingErrorHandler<\/a> class, that now treats a fatal error as &#8220;fatal&#8221; for the listener, not the message; and improvements to the <a href=\"https:\/\/docs.spring.io\/spring-amqp\/docs\/4.1.0-SNAPSHOT\/api\/org\/springframework\/amqp\/client\/config\/EnableAmqp.html\" rel=\"nofollow noopener\" target=\"_blank\">@EnableAmqp<\/a> annotation that semantically aligns with its <a href=\"https:\/\/docs.spring.io\/spring-amqp\/docs\/4.1.0-SNAPSHOT\/api\/org\/springframework\/amqp\/rabbit\/annotation\/EnableRabbit.html\" rel=\"nofollow noopener\" target=\"_blank\">@EnableRabbit<\/a> counterpart. Further details on this release may be found in the <a href=\"https:\/\/github.com\/spring-projects\/spring-amqp\/releases\/tag\/v4.1.0-RC1\" 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\/04\/22\/spring-kafka-4\" rel=\"nofollow noopener\" target=\"_blank\">first release candidate<\/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, documentation improvements, dependency upgrades and new features such as: a new <a href=\"https:\/\/docs.spring.io\/spring-kafka\/docs\/4.1.0-SNAPSHOT\/api\/org\/springframework\/kafka\/listener\/ContainerProperties.ShareAckMode.html\" rel=\"nofollow noopener\" target=\"_blank\">ContainerProperties.ShareAckMode<\/a> enum class that maps use cases (explicit mode, implicit mode and manual) to a clear name for shared consumers; and support for the Apache Kafka <a href=\"https:\/\/github.com\/apache\/kafka\/blob\/trunk\/clients\/src\/main\/java\/org\/apache\/kafka\/clients\/consumer\/AcknowledgementCommitCallback.java\" rel=\"nofollow noopener\" target=\"_blank\">AcknowledgementCommitCallback<\/a> interface that provides visibility into the success or failure of asynchronous commits. More details on this release may be found in the <a href=\"https:\/\/github.com\/spring-projects\/spring-kafka\/releases\/tag\/v4.1.0-RC1\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a> and this <a href=\"https:\/\/docs.spring.io\/spring-kafka\/reference\/4.1\/whats-new.html#whats-new-in-4-1-since-4-0\" rel=\"nofollow noopener\" target=\"_blank\">what&#8217;s new<\/a> page.<\/p>\n<p>Spring LDAP<\/p>\n<p>The first release candidate of <a href=\"https:\/\/spring.io\/projects\/spring-ldap\" rel=\"nofollow noopener\" target=\"_blank\">Spring LDAP<\/a> 4.1.0 ships with one bug fix, dependency upgrades and two new features: the removal of constraints with the dependency on JUnit 4; and a refactor of the <a href=\"https:\/\/docs.spring.io\/spring-ldap\/reference\/4.1\/api\/java\/org\/springframework\/ldap\/core\/LdapClient.html\" rel=\"nofollow noopener\" target=\"_blank\">LdapClient<\/a> interface that adds various single, optional, list, and stream methods to align with the Spring Framework <a href=\"https:\/\/docs.spring.io\/spring-framework\/docs\/7.0.7\/javadoc-api\/org\/springframework\/jdbc\/core\/simple\/JdbcClient.html\" rel=\"nofollow noopener\" target=\"_blank\">JdbcClient<\/a> interface. Further details on this release may be found in the <a href=\"https:\/\/github.com\/spring-projects\/spring-ldap\/releases\/tag\/4.1.0-RC1\" rel=\"nofollow noopener\" target=\"_blank\">release notes<\/a>.<\/p>\n<p>Spring Vault<\/p>\n<p>The <a href=\"https:\/\/spring.io\/blog\/2026\/04\/20\/spring-vault-4-0-rc1-4-0-2-released\" rel=\"nofollow noopener\" target=\"_blank\">first release candidate<\/a> of <a href=\"https:\/\/spring.io\/projects\/spring-vault\" rel=\"nofollow noopener\" target=\"_blank\">Spring Vault<\/a> 4.1.0 provides bug fixes, dependency upgrades and one new feature that builds on the recent release of <a href=\"https:\/\/www.hashicorp.com\/en\/products\/vault\" rel=\"nofollow noopener\" target=\"_blank\">HashiCorp Vault<\/a> 2.0. More details on this release may be found in the <a href=\"https:\/\/github.com\/spring-projects\/spring-vault\/releases\/tag\/4.1.0-RC1\" 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 April 20th, 2026, highlighting&hellip;\n","protected":false},"author":2,"featured_media":631169,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[215038,44626,11777,49,48,4113,35858,236260,215037,55430,55428,219284,236259,55431,61],"class_list":{"0":"post-631168","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-technology","8":"tag-amqp","9":"tag-apache-kafka","10":"tag-architecture-design","11":"tag-ca","12":"tag-canada","13":"tag-development","14":"tag-java","15":"tag-ldap","16":"tag-spring-boot","17":"tag-spring-framework","18":"tag-spring-integration","19":"tag-spring-modulith","20":"tag-spring-news-roundup-apr20-2026","21":"tag-spring-security","22":"tag-technology"},"_links":{"self":[{"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/posts\/631168","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=631168"}],"version-history":[{"count":0,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/posts\/631168\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/media\/631169"}],"wp:attachment":[{"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/media?parent=631168"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/categories?post=631168"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.newsbeep.com\/ca\/wp-json\/wp\/v2\/tags?post=631168"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}