github spring-projects/spring-framework v5.1.0.RC1
5.1 RC1 Release

latest releases: v6.2.0-M1, v6.1.6, v6.0.19...
5 years ago

⭐ New Features

  • Introduce ResolvableType.toClass() shortcut [SPR-17086] #21623
  • Programmatic ObjectProvider retrieval through BeanFactory API [SPR-17075] #21613
  • Avoid repeated factory class introspection in AbstractAutowireCapableBeanFactory [SPR-17071] #21609
  • Revise ResolvableType.as for introspection performance (limiting serializability) [SPR-17070] #21608
  • Support running Kotlin Spring apps without kotlin-reflect.jar [SPR-17069] #21607
  • Use available type information in functional bean definitions for resolving FactoryBean type [SPR-17063] #21601
  • Support for null bean in functional bean registration [SPR-17057] #21595
  • WebSession/WebSessionStore API are silent on saving a session that may have been invalidated [SPR-17051] #21589
  • Hibernate 5: restore ability to inject "cacheRegionFactory" of LocalSessionFactoryBean [SPR-17043] #21581
  • Support stricter encoding of URI variables in UriComponents [SPR-17039] #21577
  • Consistent non-exposure of null beans in the BeanFactory API [SPR-17034] #21572
  • Publicly expose ResolvableType in RootBeanDefinition [SPR-17028] #21566
  • Evaluate @Cacheable(condition) once per method invocation only [SPR-17024] #21562
  • Revise ClassUtils.isPresent for exposing resolution exceptions in jlinked modules [SPR-17018] #21556
  • Add ServerResponse extensions for json, xml and html [SPR-17017] #21555
  • HibernateJpaDialect cannot translate JDBCException to custom DataAccessException [SPR-17015] #21553
  • Avoid ServerResponse static imports in WebFlux router DSL [SPR-17009] #21547
  • RestTemplate (and probably server side as well) should be able to bootstrap itself if com.sun.org.apache.xalan.* is not available [SPR-17007] #21545
  • DefaultParameterNameDiscoverer should automatically adapt to Graal constraints [SPR-17005] #21543
  • LocalSessionFactoryBean and HibernateTransactionManager for JPA EntityManagerFactory setup [SPR-17002] #21540
  • Perform explicit class checks in ReactiveAdapterRegistry [SPR-17000] #21538
  • Create HttpHeaders.setBearerAuth(String) [SPR-16997] #21535
  • Support platforms where Class is not Serializable in SerializableTypeWrapper [SPR-16992] #21530
  • Add MockClientHttpRequest.getBodyAsString [SPR-16988] #21526
  • AspectJ aspect for @javax.transaction.Transactional is not initialised by default [SPR-16987] #21525
  • Throw a specific exception when an attempt to override a bean definition is rejected [SPR-16982] #21520
  • Provide more control for setting the secure flag on the session cookie [SPR-16980] #21518
  • Spring context indexer is not designed for the Java 9 module path [SPR-16979] #21517
  • CachedIntrospectionResults should build complete descriptor for setter/getter across interface hierarchy [SPR-16978] #21516
  • StandardServletMultipartResolver should support also HTTP PUT method [SPR-16975] #21513
  • Resolved ApplicationListener event type should get cached [SPR-16970] #21508
  • SpringClassRule does not support the Arquillian MethodRuleChain [SPR-16967] #21505
  • Propagate read-only status to Hibernate Session through setDefaultReadOnly [SPR-16956] #21494
  • Create DSL for RouterFunction and RouterFunctions [SPR-16953] #21491
  • Improve logging for development (DEBUG vs TRACE) [SPR-16946] #21485
  • LinkedCaseInsensitiveMap should explicitly implement putIfAbsent and computeIfAbsent [SPR-16926] #21465
  • FilePart.transferTo should accept java.nio.file.Path [SPR-16925] #21464
  • Provide getter to expose the DispatcherServlet instance used in MockMvc [SPR-16924] #21463
  • Optimize AbstractAutowireCapableBeanFactory.populateBean(String, RootBeanDefinition, BeanWrapper) to avoid redundant Java Bean introspection [SPR-16918] #21457
  • Create HttpHeaders.setBasicAuth(String username, String password) [SPR-16913] #21452
  • Improve generic warnings when implementing BodyExtractor [SPR-16909] #21448
  • Introduce Stream support in PropertySources and PropertyValues [SPR-16894] #21433
  • Enable use of both @SendTo and @SendToUser on the same method [SPR-16891] #21430
  • MethodParameter needs to apply tighter assertions [SPR-16889] #21428
  • Revisit PropertyResolver Kotlin extensions [SPR-16883] #21422
  • Subclass-resolved generic return type declarations for handler methods [SPR-16877] #21416
  • Support for form parameters with HTTP DELETE [SPR-16874] #21413
  • WebClient.Builder option to customize every request [SPR-16873] #21412
  • Process X-Forwarded-Ssl headers properly [SPR-16863] #21402
  • Make FormHttpMessageWriter easier to extend [SPR-16855] #21395
  • No type-based error code used by immutable form class when type conversion error occurs [SPR-16854] #21394
  • Java 9: Avoid illegal reflective access warning for SpEL method reference [SPR-16845] #21385
  • Validation failure not exposed next to binding failure for immutable form class [SPR-16841] #21381
  • @DateTimeFormat annotations are necessary both on field and constructor parameter in the immutable form class [SPR-16840] #21380
  • A lite configuration class's member classes are processed when it's imported but not when it's registered directly [SPR-16839] #21379
  • PathMatchingResourcePatternResolver should enforce OS-independent sorting of directory content [SPR-16838] #21378
  • Extending ScheduledTaskRegistrar functionality [SPR-16834] #21374
  • java.nio.file.Path support in FileSystemResource (with regular createRelative behavior, superseding PathResource) [SPR-16833] #21373
  • ClassPathResource.isReadable() returns true for directory in runnable jar result in download empty file [SPR-16832] #21372
  • Apply Hibernate Integrator through LocalSessionFactoryBean [SPR-16828] #21368
  • Improve handling of unknown status codes by WebClient [SPR-16819] #21359
  • Support use of MultipartFile as input to RestTemplate or WebClient [SPR-16808] #21348
  • Improve UnsupportedMediaTypeException and UnsupportedMediaTypeStatusException to include body type [SPR-16805] #21345
  • WebClient support application/x-www-form-urlencoded by default [SPR-16804] #21344
  • Webflux: Default Resource as fallback for non-existing resources [SPR-16788] #21328
  • MockServerWebExchange should allow setting a WebSession [SPR-16772] #21312
  • Provide XML-based assertions in WebTestClient [SPR-16741] #21282
  • WebTestClient does not provide Hamcrest Matcher assertions for JSONPath [SPR-16729] #21270
  • Provide simple way to create ServerRequest [SPR-16706] #21247
  • CookieLocaleResolver is not RFC6265 compliant when setting a locale and time zone [SPR-16700] #21241
  • Document HttpClient connection socket timeout behavior for CONNECT and SSL connections [SPR-16697] #21238
  • Closing a MockHttpServletResponse's PrintWriter does not commit the response [SPR-16683] #21224
  • getRemoteAddress in ServerRequest [SPR-16681] #21222
  • @RequestMethod with "params" doesn't distinguish whether a value is specified or not [SPR-16674] #21215
  • Support use of reactive clients in @MessageMapping methods [SPR-16634] #21175
  • @RequestPart in WebFlux does not support List of parts [SPR-16621] #21162
  • Raise error if both @EnableWebMvc and @EnableWebFlux used [SPR-16609] #21150
  • MultipartHttpServletRequest.getParameterValues does not merge values from query string and body [SPR-16590] #21132
  • Allow spring-jcl to be found by Commons Logging's service discovery [SPR-16585] #21127
  • JdbcTemplate.queryForMap should return first value of equally named columns [SPR-16578] #21120
  • Introduce consumeWith() methods in WebTestClient assertions [SPR-16574] #21116
  • Make SubProtocolWebSocketHandler connection timeout configurable [SPR-16531] #21074
  • HTTP OPTIONS response for @RequestMapping should contain OPTIONS consistently [SPR-16513] #21056
  • MockHttpServletRequest.getReader, getInputStream should each return the same object on repeat calls [SPR-16505] #21048
  • MockHttpServletRequest shouldn't allow calls to both getReader and getInputStream [SPR-16499] #21042
  • Add SAP HANA to common JPA database platforms [SPR-16460] #21005
  • CookieWebSessionIdResolver should leverage SameSite Cookie Attribute [SPR-16418] #20964
  • Support varargs for expectations in MockMvc [SPR-16417] #20963
  • Ability to access Environment in the beans element of the Kotlin bean definition DSL [SPR-16412] #20958
  • Jackson: Add visibility properties to Jackson2ObjectMapperBuilder [SPR-16411] #20957
  • Support for serving Brotli encoded, static resources [SPR-16381] #20927
  • Ability to provide an external base path for controllers [SPR-16336] #20883
  • @RequestMapping produces condition should not impact error responses [SPR-16318] #20865
  • Support Hibernate 5.3's ManagedBeanRegistry for dependency injection [SPR-16305] #20852
  • Support for Hibernate ORM 5.3 [SPR-16303] #20850
  • Kotlin bean definition DSL should provide access to getBeansOfType() [SPR-16269] #20816
  • WebSocket in WebFlux stack doesn't support Session Attributes [SPR-16212] #20760
  • Support for autowire-candidate with @Bean [SPR-16204] #20752
  • WebSocketConfigurationSupport.defaultSockJsTaskScheduler adds NoOpScheduler to context that is not usable in any way [SPR-16189] #20737
  • Provide an Apache Commons Logging's LogFactory provider in spring-jcl to support WebSphere's Parent-First classloader [SPR-15903] #20457
  • MethodHandles.Lookup.defineClass for CGLIB class definition purposes [SPR-15859] #20414
  • Support Protobuf serialization in WebFlux [SPR-15776] #20331
  • improve performance of ContentCachingRequestWrapper [SPR-15762] #20317
  • Pass input message to HttpMessageNotReadableException for better logging [SPR-15588] #20147
  • Accept empty Collection injection for single constructor scenarios [SPR-15338] #19901
  • Jetty HTTP client integration with WebClient [SPR-15092] #19658
  • Specific exceptions for missing request headers, cookies, etc [SPR-14818] #19384
  • Preserve order of broker messages [SPR-13989] #18562
  • Support AND operator in @Profile annotation [SPR-12458] #17063
  • @PathVariable & @MatrixVariable do not work as documented when "=" is in the path variable value part (pre ";") [SPR-11897] #16516
  • ObjectProvider iterable/stream access for "beans of type" resolution in @Bean methods [SPR-11419] #16046
  • Enable REST controller method parameter annotations on an interface [SPR-11055] #15682
  • Add static factory methods to RequestCallback and ResponseExtractor [SPR-8604] #13247

🪲 Bug Fixes

  • ClientResponse's body ignored on UnsupportedMediaTypeException [SPR-17054] #21592
  • org.springframework.orm.hibernate5.SpringBeanContainer ignores the fallback bean instance producer [SPR-17010] #21548
  • AbstractMessageConverterMethodProcessor doesn't respect already handled headers and result-codes [SPR-16921] #21460
  • Spring Boot DevTools on 5.1 fails with java.lang.LinkageError: loader attempted duplicate class definition [SPR-16902] #21441
  • RestTemplate adds duplicate accept header information [SPR-16690] #21231

📔 Documentation

  • Create wiki page on debug/trace logging [SPR-16954] #21492

Don't miss a new spring-framework release

NewReleases is sending notifications on new releases.