⭐ New Features
- ClassLoader can be null in DeserializingConverter and should be annotated with
@Nullable
#30670 - Introduce
TestExecutionListener
for Micrometer'sObservationRegistry
in the TestContext framework #30658 - Add missing hint for
ResourceEditor
#30628 - Add missing hint for converting String to URI #30627
- Redesign inner Pointcut implementations as standalone classes #30621
- Add missing
@Nullable
in DefaultJmsListenerContainerFactory #30620 - Handle custom JMS acknowledgment modes as client acknowledge #30619
- Declare Advisor#isPerInstance() as default method #30614
- Improve error message for unsupported character in SpEL expression #30602
- Multipart data is always read irrelevant of handler response #30590
- Performance optimization in AbstractBeanFactoryBasedTargetSource.hashCode() #30576
- Log a warning when
commons-logging
is in the classpath #30575 - Always use
MethodArgumentNotValidException(MethodParameter, BindingResult)
constructor #30558 - Remove non-empty filename check in
ContentDisposition
builder #30537 - Add missing
EntityManagerFactory
hints forSharedEntityManagerCreator
#30523 - Disable Hibernate reflection optimizer with native #30521
- Introduce a method in
MockHttpServletRequestBuilder
to set remote address #30497 - Skip class transformer in
PersistenceUnitInfoDescriptor
for native images #30492 @Bean
'lite' mode not supported if@Bean
methods are not declared locally #30449- Align HibernateJpaVendorAdapter with Hibernate ORM 6.2 #30288
- Add nested propagation support to R2dbcTransactionManager #30134
🐞 Bug Fixes
- Cron expression scheduling might be triggered 1 millisecond earlier #30666
- Change of behaviour for UUID in bean validation output in v5.3.27 #30661
- Test context cache stats are not logged when
ApplicationContext
fails to load #30635 - Inconsistent ProxyCallbackFilter#equals/hashCode methods in CglibAopProxy #30615
- SpEL's
CompoundExpression.toStringAST()
incorrectly includes.
for indexed properties #30610 - NPE in
ReactiveTransactionSupport.unwrapIfResourceCleanupFailure
#30597 - CollectionFactory.createMap(HashMap.class, 0) now returns a LinkedHashMap rather than a HashMap #30596
- ThreadLocalTargetSource does not include actual target bean name in NamedThreadLocal #30581
- ApplicationListenerMethodAdapter inconsistently publishes events from CompletableFuture #30578
- Unsupported SQL type: TIMESTAMP_WITH_TIMEZONE when using OffsetDateTime with MySQL #30556
- SpringBeanContainer not called with Hibernate ORM 6.2 #30545
- WebFlux returns 406 instead of RFC 7807 response for subtype of ProblemDetail #30533
- HTTP Interface client cannot send URI query parameter with multipart request #30520
- Transaction isolation level not working with R2dbcTransactionManager #30508
- Support for AOT processing with GraalVM tracing agent is not consistent #30511
- For
@Bean
method that returnsnull
,@Autowired
injectsNullBean
instead ofnull
for cached arguments #30485 - MediaType property binding issue in native builds #30491
- InjectionMetadata AOT contributions do not check for existing property value #30476
- Spring Framework 6.0.8 appears to cause issues in OSGi environment #30389
- Empty
@RequestMapping
method should match both "" and "/" consistently #30293 - EclipseLinkJpaDialect: Unexpected default isolation levels #29997
- Memory leak with CglibAopProxy$ProxyCallbackFilter #26266
📔 Documentation
- Fix markup issue in Javadoc of QuartzCronField #30646
- Document
@DirtiesContext
semantics when declared at the class level and method level #30623 - Add missing Javadoc for
RegisteredBean.resolveAutowiredArgument()
#30609 - Fix invalid link in transaction resources #30570
- FileSystemUtils::deleteRecursively Javadoc refers to File instead of Path #30554
- Improve Javadoc for
ExchangeFilterFunction
#30543 - Update Javadoc and reference doc for WebMvcConfigurer to mention Boot's HttpMessageConverters #30538
- Add Javadoc since to InjectedElement.shouldInject() #30512
- Fix wording in r2dbc Statement Filters section of ref docs #30482
- Typo in Spring official documentation #30473
- Link for
@javax.annotation.Nonnull
is wrong in Javadoc for Spring's@NonNull
#30455 - Improve how the build deals with javadoc invalid references #30428
- Docs: Remove duplicate in SpEL feature list #30404
- Document which
@Scheduled
attributes support SpEL expressions #29290
🔨 Dependency Upgrades
- Upgrade to
micrometer-bom
1.10.8 andcontext-propagation
1.0.3 #30657 - Upgrade to Reactor 2022.0.8 #30655
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Foolkin, @anyuruf, @galingerv, @izeye, @jmewes, @kihyuk-sung, @leewin12, @marcingrzejszczak, @rweisleder, @rwinch, @scordio, @ssang1105, and @vpavic