⭐ New Features
- Improve exception handling when Hibernate-related bean creation fails #22689
- STOMP servers MUST handle a STOMP frame in the same manner as a CONNECT frame #22652
- Performance improvement in RequestMappingInfo #22598
- Skip more classes when processing beans in EventListenerMethodProcessor #22564
- Jackson2Tokenizer ignores USE_BIG_DECIMAL_FOR_FLOATS deserialization feature #22510
- Revisit XML schema handling for consistent local vs external resolution #22504
- JdbcTemplate.extractOutputParameters should preserve order of parameters #22491
- Lazy Session initialisation for JmsTransactionManager #22468
- MappingJackson2MessageConverter with Jackson Smile #22444
- Cannot define custom XmlFactory with Jackson2ObjectMapperBuilder.xml() #22428
- Directly registered FactoryBeans are instantiated more aggressively than those defined via
@Bean
methods #22409 - Provide additional debug information for memory leaks via ByteBuf.touch [SPR-17427] #21960
- Suppress Reactor Netty "disconnected client" exceptions the logs [SPR-17257] #21790
🪲 Bug Fixes
- JdbcOperationsExtensions.queryForObject overload which takes in lambda - allow null value to be returned? #22682
- Avoid duplicate registration of
@ControllerAdvice
implementing both RequestBodyAdvice and ResponseBodyAdvice #22638 - Locale inconsistently resolves to null for invalid input value #22603
- Jackson2ObjectMapperBuilder's modulesToInstall function does not eventually override the default configuration #22576
- ServletWebRequest.getHeaderValues throwing NPE when header information is not available #22547
- Fix repeat DataBuffer#write(CharSequence, Charset) calls #22484
- Last-Modified Date format changed with SPR-17571 to not have double digit day #22478
@RequestMapping
content negotiation should not impact error responses formats #22452- AbstractTraceInterceptor causes problems when implemented in Kotlin #22435
- Events extending from PayloadApplicationEvent and implementing an interface fail to match
@EventListener
argument #22426 - ReflectUtils.defineClass() ignores the ClassLoader argument in Java 11 #22416
- DefaultConversionService fails to properly convert an Object[] to a int[] #22410
- Ensure indexer gracefully handle missing meta annotations #22385
📔 Documentation
- Update documentation for WebJar support #22613
- remove broken link "overview.html#background-ioc" in doc core.html #22597
- PDF Documentation Spring-Core 5.1.5: Occurrences of a STRONG tag, where we should see a bold font #22577
- Using MockMvc to test Flux endpoints? #22544
- Documentation about aspectj and agent configuration is outdated and confusing #22429
- Add guidelines about using checked exception with proxies in Kotlin #22412
🔨 Dependency Upgrades
- Upgrade to reactor-netty 0.8.6 for Webflux #22693
❤️ Contributors
We'd like to thank all the contributors who worked on this release!