⭐ New Features
- Cache.get(Object key, Class type) should be more explicit about what to do in case of a type mismatch [SPR-12145] #16759
- allow value expressions for messaging listener annotation destinations [SPR-12134] #16750
- Call to addResourceLocations should not always be mandatory [SPR-12133] #16749
- Consider enhancing ResourceUrlProvider to be able to change the domain, port, or scheme [SPR-12130] #16746
- Update MVC namespace to match improvements made to the Java config in RC2 [SPR-12129] #16745
- Provide full control over the registration of resolvers and transformers in ResourceHandlerRegistration [SPR-12124] #16740
- RestTemplate does not render correct url for server ports [SPR-12123] #16739
- Performance issue on ResolvableType cache [SPR-12122] #16738
- Include http status code in ServletRequestHandledEvent [SPR-12119] #16735
- Consider adding static badRequest() builder method to ResponseEntity [SPR-12112] #16728
- PropertySources added via
@PropertySource
aren't available in the environment during component scanning [SPR-12111] #16727 - Placeholder resolution within
@PropertySource
resource locations can not resolve properties from prior sources [SPR-12110] #16726 - Remove synchronization around filteredPropertyDescriptorsCache in case of non-existing entry [SPR-12106] #16722
- Use putIfAbsent in CachedIntrospectionResults.addTypeDescriptor [SPR-12102] #16718
- MockHttpServletRequest should honor scheme in isSecure() method [SPR-12098] #16714
- PathMatchingResourcePatternResolver cannot search for "classpath*" patterns in a jar file roots [SPR-12095] #16711
- SchedulerAccessorBean should be able to find a default Scheduler [SPR-12094] #16710
- Convenient EhCache CacheManager setup in an
@Bean
method [SPR-12093] #16709 - Allow customizing the SockJsMessageCodec in WebSocket Java config and XML namespace [SPR-12091] #16707
- MockHttpServletRequest should honor "Host" header in getServerName() and getServerPort() [SPR-12088] #16704
- Add Exception tracking to JamonPerformanceMonitorInterceptor [SPR-12068] #16684
- Allow configuring custom redirect prefix in HandlerMethodReturnValueHandler's [SPR-12054] #16670
- Too many exception stack traces related to disconnected SockJS clients [SPR-11870] #16489
- Support ignoreResourceNotFound as attribute of util:properties [SPR-10614] #15242
- ReloadableResourceBundleMessageSource locks properties hashmap and fails under load. [SPR-10500] #15133
- Unnecessarily conservative locking in registerDependentBean is a bottleneck [SPR-8814] #13456
- Can't insert into nvarchar2 using SimpleJdbcInsert whereas it works with SimpleJdbcTemplate [SPR-8571] #13215
- Refactor AssertThrows to support Throwable instead of Exception [SPR-6362] #11028
🪲 Bug Fixes
- Jackson
@JSONView
not taken in account when using XML serialization [SPR-12149] #16763 - CachingConnectionFactory should catch exceptions on logical close [SPR-12148] #16762
- InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation called with wrong beanClass for bean declared on JavaConfig [SPR-12142] #16756
- Plain FactoryBean declaration on
@Bean
method leads to early call (pre injection) [SPR-12141] #16755 - InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation not called for bean declared on JavaConfig [SPR-12140] #16754
- CssLinkResourceTransformer does not use resolveUrlPath properly [SPR-12137] #16752
- Metadata provided by ImportAware ignores conditions and is dependent on the order of the configuration classes [SPR-12128] #16744
- GuavaCacheManager ignores cache specification due to eager initialization of internal cache map with static cache names [SPR-12120] #16736
- OpenEntityManagerInViewInterceptor doesn't always close connections with WildFly 8 [SPR-12118] #16734
- PropertySource named cannot be added relative to itself (
@PropertySource
processing fails) [SPR-12115] #16731 - MockMvc security filters causes FileUploadException: the request was rejected because no multipart boundary was found [SPR-12114] #16730
- ServerEndpointExporter causes application context refresh to fail with an NPE when used in a Spring Boot app [SPR-12109] #16725
- Wrong string equality in Indexer [SPR-12105] #16721
- ShallowEtagHeaderFilter doesn't support Servlet 3.1 setContentLengthLong [SPR-12097] #16713
@Async
Supporting ListenableFuture not applied with AspectJ [SPR-12092] #16708- UncaughtExceptionHandler is not configured with AspectJ [SPR-12090] #16706
- getBean(Object.class) fails when introspecting Environment bean [SPR-10542] #15172
- LazyInitTargetSourceCreator does not work in Java-based configuration [SPR-10508] #15140
- Injecting EXTENDED
@PersistenceContext
into JUnit 4 test class causes NoSuchBeanDefinitionException [SPR-8834] #13476
📔 Documentation
- Document how to register custom MIME type in MockServletContext [SPR-12126] #16742
- Update reference docs table 29.1. (Cache SpEL available metadata) with
@CachePut
details [SPR-12125] #16741 - Update documentation to describe the resource handling additions in 4.1 [SPR-12117] #16733
- Update reference for JSONP support [SPR-12113] #16729
- Documentation misses chapters 4.13 and 4.14 [SPR-12107] #16723
- Document support for merging custom TELs with default TELs in the reference manual [SPR-12083] #16699
- Document automatic discovery of default TestExecutionListeners in the reference manual [SPR-12082] #16698
- Document
@TestPropertySource
support in the reference manual [SPR-12076] #16692 - Document Groovy script support in the TestContext framework in the reference manual [SPR-12027] #16643
- Document programmatic test transaction management support [SPR-11941] #16558
- Document
@Sql
script support in the reference manual [SPR-11849] #16468 - No real documentation on using the spring mvc artifact [SPR-11534] #16159
- Document JCache configuration in the cache section [SPR-10176] #14809
- Add reference documentation for
@Validated
[SPR-8907] #13547 - Add reference documentation for WebApplicationInitializer [SPR-8906] #13546