Spring Framework 5.0 M3 发布了,主要更新如下:
子任务
-
[SPR-14865] - ServerWebExchangeArgumentResolver should resolve Principal
Bug
-
[SPR-14304] - ObjectToObjectConverter should be able to use constructors on non-public classes
-
[SPR-14324] - Async advisor retrieval blocks when triggered by singleton init method
-
[SPR-14597] - CssLinkResourceTransformer is incompatible with ContentVersionStrategy when using Caching
-
[SPR-14748] - Error while serializing ServerSentEvent
-
[SPR-14749] - DefaultPersistenceUnitManager may configure a persistence unit root URL that does not point to a file or directory
-
[SPR-14761] - IPv6 + Origin header + X-Forwarded-Host header gives NumberFormatException (Safari10 / CORS)
-
[SPR-14767] - ETag header is removed from PUT/POST/PATCH responses
-
[SPR-14772] - Flux<ServerSentEvent> looses messages when using a Processor from another Thread
-
[SPR-14778] - SpringValidatorAdapter's ResolvableAttribute is not serializable
-
[SPR-14781] - @CacheConfig(cacheNames) broken when used on interface
-
[SPR-14792] - Access-Control-Allow-Methods contains duplicate HTTP methods
-
[SPR-14794] - Fix HttpRequest#getURI() with Netty based engines
-
[SPR-14796] - ModelAndView's setStatus does not work for @ExceptionHandler methods
-
[SPR-14801] - Cache annotation lookup in 4.3 finds more annotations than in 4.2
-
[SPR-14833] - SockJs heartbeat causes deadlock with XHR polling
-
[SPR-14846] - SimpleApplicationEventMulticaster should not generally suppress ClassCastException
-
[SPR-14848] - LiveBeansView#unregister should not rely on ApplicationContext#getApplicationName
-
[SPR-14850] - NPE PropertyOrFieldReference$AccessorLValue due to concurrency issue
-
[SPR-14851] - ResourceHttpRequestHandler no longer works as prototype bean
-
[SPR-14853] - Allow @Cacheable method to return java.util.Optional variant of cached value with @Cacheable(sync=true)
-
[SPR-14859] - JsonObjectDecoder fails to decode some splitted source
-
[SPR-14863] - SpEL: Compiled OpNE should favor equals() to !=
-
[SPR-14869] - [spring-web-reactive] NPE in RequestMappingHandlerAdapter at Startup
-
[SPR-14876] - Wrong HandlerResultHandler select when dealing with exceptions
-
[SPR-14877] - Returning Mono<ResponseEntity<?>> causes NPE
改进
-
[SPR-8282] - BindingResult should not hold on to ConversionService when serialized in session
-
[SPR-10502] - context:property-placeholder should accept comma-separated list as placeholder value for its location attribute
-
[SPR-14277] - Allow customization of TestDispatcherServlet when using @MockMvcTest
-
[SPR-14408] - Introduce HttpHeaders getContentDisposition() and setContentDisposition()
-
[SPR-14583] - Method getMergedProperties in ReloadableResourceBundleMessageSource does not set fileTimestamp
-
[SPR-14649] - Support @EnabledIf and @DisabledIf without loading ApplicationContext
-
[SPR-14680] - Add way to obtain Principal from ServerWebExchange
-
[SPR-14717] - Print request body in PrintingResultHandler in Spring MVC Test
-
[SPR-14726] - Add support for context paths in Spring Web Reactive
-
[SPR-14737] - YAML + PropertyPlaceholderConfigurer needs to process non-String values as well
-
[SPR-14739] - Default async timeout handling results in Logged Exception for Tomcat 8.5.x
-
[SPR-14744] - Netty4ClientHttpRequestFactory should configure a default SslContext
-
[SPR-14747] - Improve performance of StompEncoder.encode()
-
[SPR-14750] - Close resources in WebClient and ClientHttpConnector
-
[SPR-14754] - Add @EnableWebReactive and WebReactiveConfigurerAdapter configuration model
-
[SPR-14760] - Reduce String allocations in TransactionAspectSupport.methodIdentification()
-
[SPR-14776] - Only print printable content for request and response body in Spring MVC Test
-
[SPR-14780] - Remove @Inherited from @Primary
-
[SPR-14783] - Inner bean behind BeanFactoryPostProcessor should be able to receive application events
-
[SPR-14790] - Add support for URI templates in redirectedUrl() & forwardedUrl()
-
[SPR-14791] - StompSubProtocolHandler makes the same assumption about header accessor as SimpleBrokerMessageHandler used to
-
[SPR-14798] - Better encapsulate and Javadoc CORS configuration defaults
-
[SPR-14799] - IllegalArgumentException: HttpEntity parameter 'null'
-
[SPR-14810] - Remove not existing NativeJdbcExtractors from documentation
-
[SPR-14811] - Replace J2EE with Java EE
-
[SPR-14815] - Hibernate 5 LocalSessionFactoryBean should allow for dynamic mapping registration (like for Hibernate 4)
-
[SPR-14816] - Allow type produced by ScopedProxyFactoryBean to be determined before singleton is created
-
[SPR-14822] - GenericConversionService.addConverter should be able to determine generic types from target class behind proxy
-
[SPR-14825] - Do not use Jackson2JsonEncoder for byte array
-
[SPR-14826] - ResolvableType equals method should not consider TypeProvider source
-
[SPR-14830] - Support @ResponseStatus on reactive controller methods
-
[SPR-14831] - Type information not available on NoSuchBeanDefinitionException for collections
-
[SPR-14837] - ApplicationContext-based initialization of reactive WebFilter, WebHandler, WebExceptionHandler infrastructure
-
[SPR-14844] - AnnotationFormatterFactory should support @AliasFor
-
[SPR-14845] - Make HttpComponentsAsyncClientHttpRequest abortable
-
[SPR-14847] - TransactionStatus.flush() should trigger TransactionSynchronization.flush() when using DataSourceTransactionManager
-
[SPR-14852] - Improve WebClient error handling
-
[SPR-14854] - Consider making MessageChannel a @FunctionalInterface
-
[SPR-14856] - Possibility to use org.springframework.cache.support.NoOpCacheManager.NoOpCache as public class as NoOpCacheManager
-
[SPR-14861] - Log exception from @ExceptionHandler at higher level than debug
-
[SPR-14862] - Use String.intern() for Annotation and Class scanning
-
[SPR-14867] - Sockjs XHR Fallback on already existing WebSocketServerSockJsSession
-
[SPR-14879] - ApplicationListenerDetector should ignore non-managed bean instances
-
[SPR-14883] - Improve exception when failing to create a specific bean due to a NoClassDefFoundError
新功能
-
[SPR-14540] - Reactive HttpMessageReader/Writer for "x-www-form-url-encoded" data
-
[SPR-14541] - Reactive HTTP request data binding
-
[SPR-14542] - Reactive HTTP request @ModelAttribute support
-
[SPR-14543] - Reactive HTTP request @InitBinder support
-
[SPR-14545] - Reactive HTTP request CORS Support
-
[SPR-14843] - Add support for RxJava 2 Maybe type
重构
-
[SPR-14800] - Use StepVerifier from reactor-test and delete TestSubscriber
-
[SPR-14824] - Modify ReactiveAdapterRegistry to use official RxJava to RS adapter
-
[SPR-14827] - Align Reactive Web Client with web.reactive.function
任务
-
[SPR-14724] - Reference Documentation: instruct how RestTemplate should handle the errors thrown about @Validated (JSR 303/349)
-
[SPR-14743] - Remove RxJava 1.x variants of WebClient adapters
-
[SPR-14765] - @lookup method injection method documentation
-
[SPR-14782] - Bad Table Rendering in Default Exception Handling Documentation
-
[SPR-14793] - EnableAsync javadoc not clear enough
-
[SPR-14797] - Documentation for InjectionPoint argument on @Bean method
-
[SPR-14809] - Remove OracleLobHandler from documentation
-
[SPR-14812] - Documentation on @EventListener SpEL features is not very clear
-
[SPR-14820] - Reactive Web Client reference documentation error
-
[SPR-14842] - The contract for StringValueResolver.resolveStringValue should be more explicit
-
[SPR-14880] - Upgrade to Mockito 2.2
-
[SPR-14881] - Document supported return types for @Async methods