⭐ New Features
- Refine ConfigurationClassPostProcessor behavior in native images #26236
- Ability to correlate ByteBuf leak records to log messages for a specific request #26230
- Avoid CGLIB proxies in websocket/messaging configuration #26227
- ContentCachingResponseWrapper should not add “Content-Length” when “Transfer-Encoding” is present #26182
- Allow customization of file extension to media type map for WebFlux static resources #26170
- Register bean definition dependencies when used via configuration class injected fields #26167
- Print helpful information in RSocket MetadataExtractor #26130
- Add ResponseSpec#toEntityFlux overload that accepts BodyExtractor #26114
- Wildcard is a valid Access-Control-Expose-Headers value #26113
- Reduce overhead of char[] creation #26101
- EntityManagerFactory startup failure in deferred mode is only available on first use #26093
@DynamicPropertySource
is not supported via@NestedTestConfiguration
semantics #26091- Introduce and() methods in MethodFilter and FieldFilter for composite filters #26063
- Kotlin extensions for WebClient.ResponseSpec #26030
- Validate that JUnit Jupiter test methods and lifecycle methods are not annotated with
@Autowired
#25966 - Add support for SSE to WebMvc.fn #25920
- Template URI Variables with newline %0A or %0D are not matched #23252
🪲 Bug Fixes
- AsyncServerResponse interoperability issue with path variables #26239
- Remove duplicate "property" in PropertyCacheKey.toString() #26237
- DataBuffer Leak in Server Response #26232
- Wrong HttpServletMapping used on INCLUDE in UrlPathHelper.skipServletPathDetermination #26216
- MockMvc ignores MultipartFile registrations when both files and parts are registered #26166
- cannot resolve
ServerRequest::pathVariable
in nestedRequestPredicate
#26163 - ConcurrentModificationException in NativeMessageHeaderAccessor#copyHeaders #26155
- AbstractServerHttpRequest constructor breaks binary compatibility between 5.2.x and 5.3.x #26151
- Refine kotlinx.serialization support #26147
- MimeType is no longer actually serializable #26127
- Resttemplate throws NPE with spring-boot-starter-log4j2 within tests #26120
- Update default for favorPathExtension to match Javadoc and as intended for 5.3 #26119
- Spring Boot 2.4 upgrade breaks injection of Principal #26117
- NoSuchMethodError in UrlPathHelper.skipServletPathDetermination #26112
- Support allowedOriginPatterns in SockJS config #26108
- PathMatchingResourcePatternResolver fails to resolve resources from JAR located in path with '#' on JDK 11+ #26104
@Transactional
causes casting error for suspending function on Spring MVC #26092- UrlPathHelper#removeJsessionid doesn't remove the jsessionid from the URL #26079
- NamedParameterJdbcTemplate.batchUpdate does not individually apply the SQL type from each SqlParameterSource argument #26071
- Missing error status handling for
toEntityFlux
methods inWebClient
#26069 - DataBufferUtils#join may release a DataBuffer more than necessary #26060
- FlightRecorderApplicationStartup exception on processing Http Request #26057
- WebMvc.fn: ServerResponse.async does not handle exceptions as expected #25931
- Non-compliant Content-Type header for multipart media types #25885
- ResponseEntity Exception Handling Issues #25490
📔 Documentation
- Clarify intended advice execution behavior in Spring version 5.2.7+ #26202
- DateTimeFormat ISO.DATE_TIME javadoc contains misleading default note #26134
- Spring EntityManager proxy is incompatible with Hibernate Search <5.11.6 (FullTextEntityManager instantiation fails with ClassCastException) #26090
- Null passed in required
@RequestParam
now fails #26088 - Mention security consideration in ForwardedHeaderFilter javadoc #26081
- Add cron expression documentation #26067
- Update javax.mail reference to jakarta.mail #25855
- Mechanism to access request bound objects in WebClient filter in servlet env #25710
- Document that
@Transactional
does not propagate to new threads #25439
🔨 Dependency Upgrades
- Upgrade to Kotlin Coroutines 1.4.2 #26226
- Upgrade to Reactor 2020.0.2 #26176
- Upgrade to Kotlin 1.4.21 #26132
❤️ Contributors
We'd like to thank all the contributors who worked on this release!