Skip to content

4.0 M3 Release

Compare
Choose a tag to compare
@spring-projects-issues spring-projects-issues released this 17 Jan 14:34
· 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