⭐ New Features
- Support resource patterns in
@TestPropertySource
locations #31055 - Support text blocks for inlined properties in
@TestPropertySource
#31053 @Bean
method should be always allowed to override scanned class matching its return type #31052- Support finding repeatable annotations in
AnnotatedTypeMetadata
#31041 - Fail fast if a
@Bean
method has a void return type #31007 - Use
Class#arrayType()
where feasible #31002 ReactiveAdapterRegistry
is not compatible with Mutiny 2 #31000- Avoid thread pinning in SseEmitter write operations #30996
- Add support for property file encoding in
@TestPropertySource
#30982 - Support custom properties file formats in
@TestPropertySource
#30981 - Support
@HttpExchange
for server side handling #30980 - Fail on error by default during test AOT processing #30977
- Deprecate
applyBeanPostProcessorsBeforeInitialization
andapplyBeanPostProcessorsAfterInitialization
in theAutowireCapableBeanFactory
interface #30974 - Provide methods for obtaining include/exclude path patterns in
MappedInterceptor
#30971 - Introduce
SimpleAsyncTaskScheduler
with virtual threads support (as an alternative toThreadPoolTaskScheduler
) #30956 - Support declarative mode for data binding #30948
- Support customizing the bind parameter name for constructor binding #30947
- Support
@RSocketExchange
for responding #30936 - Introduce
JdbcClient
with unified parameter capabilities (as a JDBC variant ofDatabaseClient
) #30931 - Allow preferred constructor to be defined at the
BeanDefinition
level #30917 - Remove obsolete native image reflection hint registration for
TransactionDefinition
constants #30854 - Deprecate
Constants
utility and stop using it internally #30851 - Use
Long.parseLong(CharSequence,int,int,int)
to avoid intermediateString
creation #30710 - Support Kotlin value class properties in SpEL #30468
- Add observability support for JMS #30335
@TransactionalEventListener
does not work withSimpleApplicationEventMulticaster.setTaskExecutor
#30244- Direct autowiring of existing collection subtype bean if
ApplicationContext
contains beans of typeT
#30022 - Clarify
FactoryBean.OBJECT\_TYPE\_ATTRIBUTE
supported types #29799 - Add support for Kotlin inline/value classes in
BeanUtils
#28638 - Publish event for
@TransactionalEventListener
with Spring WebFlux #27515 - Introduce
TransactionExecutionListener
callback API #27479 - R2DBC - DatabaseClient - Add bind method to accept an object #27282
- Introduce RowMapper with automatic binding to fields #26594
- Add support for Class-based mapping in DatabaseClient #26021
@Component
not picked up by@ComponentScan
if it has the same simple name as the main class #25952- Support custom TimeUnits in StopWatch #25803
@Lookup
doesn't work in case of AbstractBeanFactory's cacheBeanMetadata=false #25749- Injection of List is inconsistent with Resource[] #24845
- Provide guidance and better diagnostics when dependency injection makes a bean ineligible for complete post-processing #24092
- Availability of a bean definition's resolved factory method depends upon a side-effect of getBeanNamesForType which is lost when metadata caching is disabled #23795
- Validate
afterThrowing
method signature inThrowsAdviceInterceptor
#1896 - Support resource patterns in
@PropertySource
locations [SPR-16785] #21325 - Increase reusability of
Validator
[SPR-15314] #19877 - Support additional file formats in
ReloadableResourceBundleMessageSource
#18990 - Reactive types support for
@Cacheable
methods [SPR-14235] #17920 - Support caching annotations for
CompletableFuture
return values [SPR-12967] #17559
🐞 Bug Fixes
- Move
ServerWebExchange
Kotlin extensions to the right package #31046 - Spring does not find all
@ComponentScan
or@PropertySource
annotations #30941 - 404 on static resource does not return ProblemDetail response #30930
📔 Documentation
- Document
@AliasFor
support inAnnotatedTypeMetadata.getAnnotationAttributes()
#31042 - Update documentation for HTTP Interface return values #30959
- Update documentation for data binding improvements #30952
- Use of
ApplicationEventPublisher
in a reactive call stack [SPR-16481] #21025
🔨 Dependency Upgrades
- Upgrade to JUnit 5.10 #30970
- Upgrade to Micrometer 1.12.0-M2 #30997
- Upgrade to Reactor 2023.0.0-M2 #31014
❤️ Contributors
Thank you to all the contributors who worked on this release:
@OlgaMaciaszek, @alidandach, @devdilson, @graceyu-own, @izeye, @kilink, @plx927, and @remeio