⭐ New Features
- Improve documentation for
@Bean
'lite' mode and annotated class support in the TestContext Framework [SPR-9401] #14037 - java.sql.SQLTimeoutException not translated to org.springframework.dao.QueryTimeoutException [SPR-9376] #14012
- Possibility of creating multiple custom
@RequestConditions
[SPR-9350] #13988 - Documentation Typo [SPR-9321] #13959
- Add convenient WebApplicationInitializer base classes [SPR-9300] #13938
- Support binding
@PathVariable
(s) to a Map [SPR-9289] #13927 - Confusion around binding request parameters to Maps using Spring MVC [SPR-9265] #13903
- Small memory improvements to InjectionMetadata and InitDestroyAnnotationBeanPostProcessor.LifecycleMetadata [SPR-9264] #13902
- Improve Support for Maps of Mixed Types [SPR-9249] #13887
@RequestBody
should have a required parameter to allow a request body to be optional [SPR-9239] #13877- Allow configuration of a custom MessageCodesResolver in WebMvcConfigurer [SPR-9223] #13861
- SpEL: support references to arrays in the T() construct [SPR-9203] #13841
- ResourceHttpRequestHandler should check that locations is not null [SPR-9186] #13824
- Map Oracle's ORA-30006 to Spring's CannotAcquireLockException [SPR-9141] #13780
- Decode URI variable values when UrlPathHelper.setUrlDecode() is set to false [SPR-9098] #13736
- Improve dependency management for the spring-test module [SPR-8861] #13503
- Missing syntax in the 3.0.0 reference documentation [SPR-8856] #13498
- Support for JCache (JSR-107) [SPR-8774] #13417
- Support not (!) operator for profile selection [SPR-8728] #13370
- Support for Servlet 3.0/3.1 asynchronous request processing [SPR-8517] #13162
- spring-expression: OpPlus should convert operand values to String using registered convertors [SPR-8308] #12957
- Improve build system and source control infrastructure [SPR-8120] #12773
- HttpStatus deprecations/links [SPR-7942] #12597
- Update documentation regarding scoped-proxy and singleton beans [SPR-7940] #12595
- Hibernate LocalSessionFactoryBean schemaUpdate incompatible with automatic dialect detection [SPR-7936] #12591
- Predict specific object type in EhCacheFactoryBean [SPR-7843] #12499
- support pretty printing in MappingJacksonHttpMessageConverter [SPR-7201] #11860
- Support initial delay attribute for
@Scheduled
and task:scheduled [SPR-7022] #11684 - <form:form /> : propose a limited number of values for the method attribute [SPR-6945] #11610
- Some implementation of HandlerExceptionResolver should allow for a list of Exceptions to be ignored [SPR-5193] #9866
🪲 Bug Fixes
- StringUtils.parseLocaleString incorrectly parses when language and country are the same and lowercase "de_de" parses to "de_DE_de" [SPR-9420] #14056
- Log4jWebConfigurer: wrong config location URL with some property substitutions [SPR-9417] #14053
- JavaBeanInfo Link broken [SPR-9408] #14044
- ContentNegotiationViewResolver should not decode Request-URI while fetching requested Media-Types [SPR-9390] #14026
- Broken external link in AbstractWireFeedHttpMessageConverter API [SPR-9379] #14015
- AnnotationUtils.findAnnotation(Method, Class) fails to find annotation under specific conditions [SPR-9342] #13980
- HttpStatusCodeException cannot be serialized [SPR-9273] #13911
- incorrect message in BeanCreationException [SPR-9260] #13898
- JSON (jackson)
@RequestBody
marshalling throws java.io.EOFException when body is missing [SPR-9238] #13876 - Reference documentation has incorrect attribute name for Spring url tag [SPR-9188] #13826
- [SpEL] Problem with uppercase property names [SPR-9123] #13761
- Multiple javadoc issues [SPR-9113] #13751
- Encoding issue causes javadoc generation to fail [SPR-9097] #13735
- JibxMarshallerTests causes build failure on Windows [SPR-8360] #13007
- Constants.toCode throws NPE when namePrefix is null [SPR-8278] #12926
- Wrong path mapping combination between type-level and method-level
@RequestMapping
on@Controller
[SPR-7970] #12625 - org.springframework.web.servlet.view.json.MappingJacksonJsonView does not set the Content-Length response header. [SPR-7866] #12523
- JibxMarshaller doesn't use configured encoding property when unmarshalling documents [SPR-7865] #12522
- Using array syntax generates invalid id in freemarker [SPR-7710] #12366
- Invalid reference to spring version in MultipartResolver javadocs [SPR-5984] #10652
📔 Documentation
- Change green JavaDocs API to standard JavaDoc colors with SpringSource logo [SPR-6787] #11453