⭐ New Features
- Support
ContextLoader
config in@SpringJUnitConfig
and@SpringJUnitWebConfig
#31498 TypeDescriptor
andResolvableType
cache inGenericTypeAwarePropertyDescriptor
#31490- Consistent
Class
and array matching inResolvableType.isAssignableFrom
#31487 BeanDefinitionRegistryPostProcessor
should declare empty defaultpostProcessBeanFactory
method #31476- Remove support for Protobuf 2.x and protobuf-java-format #31465
- Refine CRaC restoration logs #31462
- Allow repeatable writes in StreamingHttpOutputMessage #31449
- Add support for merging two BeanRegistrationAotContribution instances #31446
- Kotlin BeanFactory.getBean extension fails with nested generic in context #31439
- Log warning and skip resource hint registration for classpath location patterns #31429
- Revisit AOT support for generic constructor argument values #31420
- Add UriBuilderFactoryArgumentResolver. #31413
- Add Coroutines support for
@Cacheable
#31412 PartEvent
API should support limiting the number of file parts #31343- Revise support for quoted identifiers in
SimpleJdbcInsert
#31208 - When configuration class parsing fails, provide more information about the class that triggered the failure #31146
- WebClientResponseException defaults to ISO-8859-1 #31072
- Introduce
@DisabledInAotMode
in the TestContext framework #30834 - Support
TypedStringValue
during AOT processing #29074 - Support ETag generation on ResourceHttpRequestHandler #29031
- Better error reporting for
@Bean
creating when bean instance has been replaced with an incompatible type #28897 - Add Coroutines support for
@EventListener
#28343 - Support "*" catch-all mappings for MockMvc Filter registrations #28041
- Guard against
ConcurrentModificationException
when the response processescommitActions
#27587 - Improve
ControlFlowPointcut
extensibility #27187 - Uploading a too-large file should be a 4xx client error, not a 500 Internal Server Error #27170
- Add special handling of disconnected client errors in ExceptionHandlerExceptionResolver #26181
🐞 Bug Fixes
- ConstructorResolver rejects a candidate if the parameter value is
null
#31495 - 3.2.0-RC1: No primary or single unique constructor found for interface java.util.Set #31488
- Can't link to Spring Framework 6.1.0 release candidate documentation #31480
- In
MockMvc
tests all filters end up with empty-stringfilterName
, breakingOncePerRequestFilter
#31474 <mvc:annotation-driven>
should not instantiate bean property values #31472- Graal VM native image: Substitution target for o.s.o.j.v.Target_BytecodeProvider is not loaded #31452
- JdkClientHttpRequest does not support Content-Length 0 #31451
- Fix typo in
ClassUtils.forName()
#31428 - AOT processing fails to determine proper target for a FactoryBean that produces an array #31426
- BeanDefinitionPropertyValueCodeGenerator#orderForConsistency expects values to be Comparable #31419
- Conversion not applied to
@RequestParam
default value if used for "null after conversion" case #31336 HandlerMethodValidationException.Visitor
incorrectly triggersother()
method instead ofrequestParam()
for@RequestParam
validation errors #31329- AbstractApplicationContext.refresh() leaves bean resources uncleaned when SmartInitializationSingleton throws a non BeansException #28878
📔 Documentation
- Document pattern matching support in
NameMatchMethodPointcut
#31500 - Fix small typo in javadoc #31455
- Expand explanation for the "lite" bean approach #29957
🔨 Dependency Upgrades
❤️ Contributors
Thank you to all the contributors who worked on this release:
@OlgaMaciaszek, @bdshadow, @funky-eyes, @izeye, @larsgrefer, and @mmoayyed