⭐ New Features
- Use @SafeVarargs in Jackson builder and factory #25311
- Use JDBC 4 API for connection validation #25305
- Reduce String creation in BeanPropertyRowMapper #25301
- Align DispatcherServlet defaults for Java and XML #25260
- Make DispatcherServlet.properties loading lazy #25257
- Rollback reactive transaction on cancel #25256
- Support multi-value X-Forwarded-Prefix headers #25254
- Refactor method name dispatching to switch statements in AutowireUtils #25199
- Disable and remove unsupported features from native images #25179
- Refactor method name dispatching to switch statements #25170
- Refactor method name dispatching to switch statements #25163
- Provide a flag to disable SpEL support #25153
- Provide a flag to disable XML support #25151
- Allow customization of JPA EntityManager before use #25125
- Make use of HttpServletMapping when available #25100
- Add support for R2DBC #25065
- Support configurable timeout in @transactional #25052
- Use same default ClassLoader in SpringFactoriesLoader #24992
- SpringFactoriesLoader should filter out duplicates #24985
- DefaultResourceLoader's default constructor makes it easy to introduce a ClassLoader leak #24957
- Reject "/path/**/other" patterns in PathPatternParser #24952
- Support for PathPatternParser in Spring MVC #24945
- Introduce ClientHttpConnector test suite #24941
- Add file parameters as request parts in HtmlUnitRequestBuilder #24926
- BeanNameAutoProxyCreator proxies the wrong beans when custom TargetSourceCreator specified #24915
- Expose multipart data in ServerRequest #24909
- VersionResourceResolver should use weak ETags to allow for HTTP compression #24898
- Extend transaction attributes with labels #24890
- Avoid using regex matching for static patterns #24887
- Align TransactionManagementConfigurer support in TestContext framework with production #24869
- Add Encoder and Decoder for Netty ByteBuf #24866
- Allow setting SerializationInclusion with JsonInclude.Value #24824
- ObjectProvider.ifAvailable throws exception for scoped bean without an active scope #24822
- Wrap XMLStreamException in DecodingException #24778
- Improve MediaType parsing performance #24769
- Add BeanPostProcessors in bulk #24756
- Integrate Apache Http client with WebClient #24700
- Improve performance of AbstractAutowireCapableBeanFactory#predictBeanType #24681
- Improve efficiency of mutating of ClientHttpResponse and ServerHttpRequest #24680
- Support user-defined key type in JDBC KeyHolder #24655
- PartsHttpMessageWriter introduced #24535
- Support URI templates in RequestEntity #24406
- Allow re-initialization of DataBinder to and from direct field or bean property access #24347
- Add support for metadata push to RSocketRequester #24322
- Support setting spring.test.constructor.autowire.mode via junit-platform.properties file #24285
- Honor generic type information in BeanUtils.copyProperties() #24281
- Fix behavior in ExceptionHandlerExceptionResolver.setResponseBodyAdvice #24204
- Support for RxJava 3 #24170
- Add Nullable to Joinpoint and MethodInterceptor #24117
- DataSourceTransactionManager does not consider SQLExceptionTranslator on commit #24064
- Turn off useSuffixPatternMatching by default #23915
- Support matching against multiple header values in HeaderAssertions #23878
- Multipart request support in MockRestServiceServer #23772
- Enhanced form data request support in MockRestServiceServer #23671
- Add support for X-Forwarded-For and Forwarded for #23582
- @ExceptionHandler to keep nesting beyond the first cause #23380
- Support separate annotation introspectors in Jackson2ObjectMapperBuilder #23017
- Improve GraalVM native support #22968
- Provide access to the WebSocket close status in WebFlux #22079
- Make WebFlux multipart support fully Reactive [SPR-17122] #21659
- Add iterable JDBC template to process large amount of data [SPR-13900] #18474
🪲 Bug fixes
- AllEncompassingFormHttpMessageConverter now uses both JAXB and Jackson by default #25291
- Align @RequestPart support in WebFlux with Spring MVC #22973
📔 Documentation
- Fix obsolete link in Kotlin docs #25192
- Switch to googlecode theme for syntax highlighting in reference manual #24865
- fix WebRequest.checkNotModified docs #1035
🔨 Dependency upgrades
- Upgrade to Gradle 6.5 #25180
- Upgrade to Reactor 2020.0.0 M1 #25085
- Upgrade to Dom4j 2.1.3 and Jaxen 1.2.0 #25078
- Upgrade to Gradle 6.4 #25020
- Upgrade to ASM 8.1 #24872
- Upgrade to TestNG 7.1.0 #24298
- Upgrade to Groovy 3.0 #24215
- Upgrade to JUnit 4.13 #22894
❤️ Contributors
We’d like to thank all the contributors who worked on our current release!
- @eiselems
- @parviz-93
- @LinkedList
- @ijliym
- @eXsio
- @igor-suhorukov
- @marschall
- @vpavic
- @izeye
- @midumitrescu
- @thenx-wei
- @YooInKeun
- @Syquel
- @dreis2211
- @kamilszymanski
- @quaff
- @kobaeugenea
- @encircled
- @stqp
- @kpkunal1406
- @martin-tarjanyi
- @jjohannes
- @97e57e
- @molassar
- @rweisleder
- @spac-valentin
- @yanghuai2020
- @rohitp27
- @mp911de
- @dilsonnn
- @chenqimiao
- @kptfh
- @mdeinum
- @stsypanov