4.0 M3 Release
·
25915 commits
to main
since this release
⭐ New Features
- Can
@Profile
be@Documented
[SPR-10967] #15595 - Add support for sending Ping and Pong WebSocket messages as well as for handling incoming Pong messages [SPR-10876] #15503
- Implement ChannelInterceptor-like feature for SockJS/WebSocket/STOMP messages [SPR-10866] #15493
- Add client and server-side WebSocket container configuration support [SPR-10844] #15471
- MockMvcBuilders.standaloneSetup() ignores controller path mapping URIs' placeholders [SPR-10825] #15451
- Untranslated Hibernate exception [SPR-10815] #15441
- Add
@RestController
to stereotype a controller that is going to be used for@ResponseBody
rendering [SPR-10814] #15440 - Stereotype
@Profiles
not merged [SPR-10812] #15438 - Make it possible to configure serialization inclusion for Jackson ObjectMapper [SPR-10810] #15436
- Make the use of JSON library in the SockJS service configurable [SPR-10800] #15426
- Add support for discovering JPA 2.1
@Converter
during scanning [SPR-10799] #15425 - Allow headers to be set on WebSocketConnectionManager [SPR-10796] #15422
- Add LocalContainerEntityManagerFactoryBean missing methods to easily replace elements in persistence.xml [SPR-10764] #15390
- Request streaming for HttpComponentsClientHttpRequestFactory [SPR-10728] #15356
- Add recovery-interval to jms:listener-container [SPR-10711] #15339
- Make UriComponents.UriTemplateVariables public [SPR-10647] #15275
- Allow BeanDefinitionRegistryPostProcessor to register other BeanDefinitionRegistryPostProcessors [SPR-10630] #15258
- Provide access to attributes from the handshake HTTP session [SPR-10624] #15252
- Allow
@Bean
to override a dynamically registered bean definition [SPR-10607] #15236 - New
@Description
annotation to add description field to BeanDefinition when using annotation based configuration [SPR-10583] #15212 @RequestMapping
inheritance not worked as expect with a dot path [SPR-10554] #15185- Assign lowest priority to "/**" in AntPathMatcher [SPR-10550] #15181
- MarshallingHttpMessageConverter#supports() is not symmetric [SPR-10463] #15096
- Add time zone support to the
@Scheduled
annotation for cron jobs [SPR-10456] #15089 - UriComponentsBuilder should provide a way to remove the extension from the path [SPR-10272] #14906
- Allow usage of
@Lazy
on injection points [SPR-10353] #14896 - Allow meta-annotations to override attributes from their parent [SPR-10181] #14814
- Comprehensive support for Java 8 / OpenJDK 8 [SPR-9639] #14273
- Support for WebSocket messaging [SPR-9356] #13994
- Support an asynchronous API for RestTemplate [SPR-8804] #13446
- Make org.springframework.http.MediaType Serializable [SPR-8738] #13380
- Doc: gzip support in RestTemplate [SPR-7874] #12531
- Autowiring should support ordered collection driven by Order annotation or Ordered interface [SPR-5574] #10245
🪲 Bug Fixes
- Stomp passcode should not be included in plain text in log messages [SPR-10868] #15495
- WebSocket support on Jetty always uses SockJS HTTP fallbacks [SPR-10861] #15488
- NoSuchMethodError: MediaType.isCompatibleWithMediaType;) [SPR-10860] #15487
- Spring no longer recognizes mapped classes [SPR-10826] #15452
- NoSuchMethodError: org.springframework.util.MultiValueMap.getOrDefault(Ljava/lang/Object;Ljava/lang/Object;) [SPR-10807] #15433
- SpringConfigurator uses ListableBeanFactory method which is documented to be slow for EVERY new WebSocket connection [SPR-10605] #15234
📔 Documentation
- Modify Spring 4.x documentation to reflect JSR-349 support [SPR-10813] #15439