v6.0.0-M4
Pre-release
Pre-release
spring-builds
released this
12 May 15:01
·
7673 commits
to main
since this release
⭐ New Features
- Add native hints for core annotations #28442
- Add byte[] to supported types in SimpleJmsHeaderMapper #28421
- Add RootBeanDefinition constructor that accepts a ResolvableType #28418
- Add Throwable functional interfaces #28417
- Support multiple SpringFactoriesLoader files #28416
- Add position variant of ObjectUtils.addObjectToArray #28415
- Support for Jakarta Concurrency 3.0 #28400
- Add header resolver for HttpExchange method #28395
- FormHttpMessageConverter should not have a dependency on the Jakarta Mail API #28392
- Support to Create a Proxy From an Annotated HTTP Service Interface #28386
- BeanRegistrationContributionProvider should have access to the bean factory #28384
- Generate appropriate AOT bean registration for scoped proxies #28383
- AOT contribution for
@PersistenceContext
and@PersistenceUnit
#28364 - Return UnmodifiableMap in MVC PathVariableMapMethodArgumentResolver #28352
- Allow to register AotContributingBeanFactoryPostProcessor declaratively #28342
- Allow to register reflection hints for multiple types at once #28339
- Add support for HEAD methods in Spring's Resource handling #28291
- Initialize NativeDetector at build time #28244
- Support multiple segments in encoded Content-Disposition #28236
- Introduce HttpStatusCode interface #28214
- Introduce fluent API for search options in MergedAnnotations #28208
- Introduce predicate for searching enclosing classes in MergedAnnotations #28207
- Remove obsolete org.springframework.core.NestedIOException #28198
- Enable access to an RFC 7807 ProblemDetail formatted error response from the client side #28190
- Support "application/problem+json" as the response Content-Type #28189
- Introduce RuntimeHintsRegistrar #28160
- Ability to differentiate different causes for WebInputException #28142
- Remove TYPE_HIERARCHY_AND_ENCLOSING_CLASSES search strategy for MergedAnnotations #28080
- Deprecate SerializationUtils#deserialize #28075
- MediaType parameters in the "consumes" condition of
@RequestMapping
are not considered for matching #28024 - Introduce token-based consumption of multipart requests in WebFlux #28006
- Automatically clean up multipart temp files #27633
- Introduce removeApplicationListener in ConfigurableApplicationContext #14023
🐞 Bug Fixes
- Use Arrays.toString for initMethodNames and destroyMethodNames arrays in AbstractBeanDefinition#toString #28427
- Reflection configuration for primitives have wrong name #28347
- GraalVM reflect config uses wrong format for inner classes #28312
- Throw a meaningful exception if a TypeReference does not use a fully qualified name #28213
- Fix queriedMethods handling in ReflectionHintsSerializer #28212
- AntPathMatcher matches path with trailing slash differently if '**' is present in the pattern #27506
📔 Documentation
- Use "instanceof pattern matching" in sample in reference docs #28332
- Add Javadoc since for BeanDefinitionValueResolver.resolveInnerBean() #28217
🔨 Dependency Upgrades
❤️ Contributors
We'd like to thank all the contributors who worked on this release!