⭐ New Features
- Make it easier to register reflection hints on interface hierarchies #32824
- Support varargs invocations in SpEL for varargs array subtype in compiled expressions #32804
- Align StandaloneMockMvcBuilder with trailing slash defaults #32796
- Use lambda expressions consistently #32765
- Bean overriding in tests should use by-type semantic if no name is specified #32761
- Add
ServerRequest.pathVariableOrNull
Kotlin extension #32738 - Throw an exception for suspending factory methods #32719
- Introduce
ReflectiveIndexAccessor
convenience class in SpEL #32714 - Add
BodyInserters.fromValue(T, ParameterizedTypeReference<T>)
and related APIs #32713 - Rename AssertableMockMvc to MvcTester and review assertions structure #32712
- Introduce
generateCodeForArgument()
inCodeFlow
#32708 - Make
SpelNode
compilation aware #32707 - Add a
requiredBody()
extension toRestClient.ResponseSpec
#32703 - Add
IndexAccessor
support to SpEL'sSimpleEvaluationContext
#32702 - Support compilation of array and list indexing with
Integer
in SpEL #32694 - Avoid unnecessary compilation attempts in SpEL's
Indexer
#32677 - Adds support for qualifying columns with table. #32653
- Omit empty resource description in
DeprecatedBeanWarner
's log message #32647 - Introduce
getName()
in SpEL'sBeanReference
#32640 - Validate that
private
JUnit Jupiter lifecycle methods are not annotated with@Autowired
#32627 - Ensure removal of
Content-Type
header if bodyPublisher
is empty #32622 - Introduce
CompilableIndexAccessor
SPI in SpEL #32613 - AbstractJackson2Decoder doesn't support decoding NDJSON arrays into Flux #32579
- Handle DataBufferLimitException as HTTP 413 responses #32558
- Introduce URL parser based on algorithm provided in Living URL standard #32513
- JettyClientHttpRequestFactory should set request/response timeout #32330
- Remove Hibernate substitutions and deprecated properties usage #32314
- Register
DynamicPropertyRegistry
as a singleton bean in a test'sApplicationContext
#32271 - Allow for AbstractUrlHandlerMapping to add/remove handlers at runtime #32064
- Make it possible for Spring Security to align with Spring MVC without HandlerMappingIntrospector #31823
- Create Filter to handle URLs with trailing slashes #31366
- Add testing support for WebMvc.fn #30477
- Use URL and HTTP method in DefaultResponseErrorHandler #28958
- CacheAspectSupport initialization failure should throw dedicated exceptions, rather than IllegalStateException #22442
- Clear AspectJExpressionPointcut cache when it is no longer used #12334
🐞 Bug Fixes
MediaTypeAssert
risk false negative withisNotEqual
assertion #32756IndexAccessor
cannot support customCollection
target type #32736- Custom
IndexAccessor
cannot supportString
index type #32706 - HttpHeaders should reject negative ContentLength values #32660
📔 Documentation
- Improve wording in Spring Framework Overview documentation #32829
- Clarify supported targets for annotations in the TestContext framework #32772
- Modernize the lazy-initialized beans refdoc section #32767
- Document SpEL
IndexAccessor
support in the reference manual #32735 - Use lowercase package name in code snippets #32734
- Fix class name typo in reference documentation #32664
- Introduce configuration code includes and tabs in the Integration section #32600
- Document bean override support in the TestContext framework in the reference manual #32490
🔨 Dependency Upgrades
- Upgrade to HtmlUnit 4.1.0 #32740
- Upgrade to Micrometer 1.13.0 #32811
- Upgrade to Reactor 2024.0.0-M2 #32785
- Upgrade to webjars-locator-lite 1.0.0 #32564
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Donghh0221, @GeorgePap-719, @LeMikaelF, @MichaelKunze, @NadChel, @SharadK10, @attermann, @awmeinema, @dukbong, @earlgrey02, @evan-mc, @jerzykrlk, @laterlaugh, @mysend12, @onjik, and @quaff