github spring-projects/spring-framework v4.3.0.RC1
4.3 RC1 Release

latest releases: v6.2.0, v6.1.15, v6.2.0-RC3...
5 years ago

⭐ New Features

  • Scoped proxies are fragile with respect to serialization [SPR-14117] #18689
  • Auto-detect Kotlin Jackson module [SPR-14108] #18680
  • Make localized field names lookup extensible in JSR-303 validation messages [SPR-14104] #18676
  • LocalValidatorFactoryBean should expose a hook for using a custom ValidationProviderResolver [SPR-14100] #18672
  • AnnotationTransactionAttributeSource should never apply to GroovyObject methods [SPR-14095] #18667
  • AsyncRestTemplate should trigger no-output HTTP requests immediately as well [SPR-14093] #18665
  • Refine TestPropertySourceUtils for Spring Boot usage [SPR-14088] #18660
  • PathMatchingResourcePatternResolver should enforce consistent alphabetical sorting of directory content [SPR-14085] #18657
  • Add setMultiTenantConnectionProvider to org.springframework.orm.hibernate5.LocalSessionFactoryBean [SPR-14072] #18644
  • Support for HTTP Vary configuration (e.g. in reaction to locale-based rendering) [SPR-14070] #18642
  • MockMvcWebConnection should share CookieManager with HtmlUnit driver [SPR-14066] #18638
  • Allow @Autowired to be declared on parameters [SPR-14057] #18629
  • Support creation of SynthesizingMethodParameter for constructor parameter [SPR-14054] #18626
  • MockHttpServletResponse should convert Cookies into Set-Cookie header [SPR-14051] #18623
  • ReflectionTestUtils should automatically unwrap proxies [SPR-14050] #18622
  • DefaultUserDestinationResolver does not support "." separator convention [SPR-14044] #18616
  • Reject @ManagedResource a on class which is not public [SPR-14042] #18614
  • BigDecimal to Integer/Short/Byte should overflow like BigDecimal to Long does [SPR-14041] #18613
  • HTTP persistent connections for HTTP Invoker and RestTemplate [SPR-14040] #18612
  • Support conversion between Enum and Integer [SPR-14039] #18611
  • Provide flag to allow ServletTestExecutionListener to run without @WebAppConfiguration [SPR-14035] #18607
  • InjectionPoint/DependencyDescriptor as injectable argument for @Bean methods [SPR-14033] #18605
  • Adding ability to read result sets row-by-row for MySql driver [SPR-14028] #18600
  • Reconsider enablement of JNDIPropertySource by default [SPR-14026] #18598
  • Support for OkHttp 3 [SPR-14024] #18596
  • Remove double slash from resolved WebJar resources [SPR-14018] #18590
  • Custom key classes for HashMap should implement Comparable [SPR-14017] #18589
  • Make TestContextManager.getTestContext() public [SPR-14011] #18583
  • Support placeholder for @CrossOrigin [SPR-14010] #18582
  • Allow @ComponentScan custom filters to implement *Aware interfaces [SPR-14009] #18581
  • Allow non-public @Transactional test methods [SPR-14000] #18573
  • Introduce ContextCustomizer API in the TestContext framework [SPR-13998] #18571
  • Support @BeforeTransaction and AfterTransaction on non-public methods [SPR-13997] #18570
  • Validator is not set after initializing web socket MessageBroker from xml configuration [SPR-13996] #18569
  • Introduce common composed annotations for web scopes [SPR-13993] #18566
  • Introduce common composed annotations for @RequestMapping [SPR-13992] #18565
  • Remove @BootstrapWith from @WebAppConfiguration [SPR-13991] #18564
  • Unique XML-specified constructor not accepted in case of unresolvable name [SPR-13987] #18559
  • Consistent resolution of factory method exceptions [SPR-13985] #18557
  • Support JacksonXmlModule.setDefaultUseWrapper [SPR-13975] #18547
  • Support repeatable annotations as composed annotations [SPR-13973] #18545
  • Allow a single element to override an array attribute in a meta-annotation [SPR-13972] #18544
  • Improve CacheOperation equals/hashCode implementation performance [SPR-13970] #18542
  • Allow spring.factories to load package private classes [SPR-13969] #18541
  • Improve core container exception meta-data [SPR-13968] #18540
  • TestContextManager.afterTestMethod doesn't handle java.lang.Error! [SPR-13961] #18534
  • Consistent behavior for unwrap(null) on JPA and Bean Validation wrappers [SPR-13960] #18533
  • ObjectFactory lacks method for getting bean with specified constructor arguments [SPR-13956] #18529
  • Allow @ContextConfiguration to be omitted [SPR-13955] #18528
  • Provide shorter 'alias' for SpringJUnit4ClassRunner [SPR-13954] #18527
  • @RequestHeader name/value does not accept placeholders [SPR-13952] #18525
  • Prevent accessing the session in ServletRequestAttributes.updateAccessedSessionAttributes() if no session attributes need to be updated [SPR-13950] #18522
  • Mis-typed URL should give 404 not 405 [SPR-13944] #18516
  • An ObjectFactory variant with lenient not-unique handling [SPR-13943] #18515
  • OkHttp RestTemplate adapter uses inappropriate async requests [SPR-13942] #18514
  • Support for Common Annotations 1.1's javax.annotation.Resource.lookup() [SPR-13941] #18513
  • Duplicate method signature in reference doc example [SPR-13940] #18512
  • Provide way in MVC Java config to modify rather than replace default HandlerExceptionResolvers [SPR-13931] #18503
  • ThreadPoolTaskExecutor does not allow for decorating Runnables [SPR-13930] #18502
  • Consistent API between spring-web and spring-messaging HandlerMethod infrastructure [SPR-13929] #18501
  • Speed up AntPathMatcher by doing prefix-match [SPR-13913] #18487
  • Ability to add a custom ResourceLoader conveniently in AnnotationConfigWebApplicationContext or conveniently as can be done via spring boot [SPR-13905] #18479
  • Convenient access to session and request attributes in controller methods [SPR-13894] #18468
  • Support 'primary' transaction managers and data sources in the TestContext Framework [SPR-13891] #18465
  • AnnotationAwareOrderComparator getPriority does not work if bean is a proxy [SPR-13884] #18457
  • Add support for UTF-8 and other charset/encoding to @PropertySource [SPR-13874] #18447
  • Support for conditional PUT in Web MVC (using If-Unmodified-Since header) [SPR-13863] #18436
  • ResourceAccessException message could leak sensitive information [SPR-13860] #18433
  • MultipartFile argument requires multipart request even when optional (and empty) [SPR-13849] #18422
  • Validate @RequestMapping methods on AOP proxies [SPR-13842] #18415
  • Support RFC 5861 (Cache Control Extensions) in com.springframework.http.CacheControl [SPR-13841] #18414
  • @AliasFor attribute name should default to declaring attribute [SPR-13828] #18401
  • BeanFactoryAnnotationUtils.qualifiedBeanOfType does not work for @Qualifier on bean class [SPR-13819] #18392
  • Consistent validation of annotated methods behind AOP proxies [SPR-13816] #18389
  • EventListener condition SpEL cannot invoke bean methods [SPR-13814] #18387
  • Add a convenience constructor to InternalResourceViewResolver [SPR-13813] #18386
  • Cacheable condition SpEL cannot invoke bean methods [SPR-13812] #18385
  • Users logged in to multiple servers do not get messages in sessions on remote servers [SPR-13800] #18373
  • Support global separator in jdbc:initialize-database [SPR-13792] #18365
  • ListenableFutureAdapter.addCallback may or may not propagate failures from a FailureCallback in the calling thread [SPR-13785] #18358
  • Support weak Etags in ShallowEtagHeaderFilter [SPR-13778] #18352
  • Lazy GenericMessage payload extraction for JMS endpoints [SPR-13777] #18351
  • Support store-by-value in ConcurrentMapCacheManager [SPR-13758] #18331
  • Avoid scoped destruction callbacks in case of no post-processor actually applying [SPR-13744] #18317
  • Support mock-like handler method reference in Spring MVC Test [SPR-13736] #18309
  • Parse form data request content and populate request params in Spring MVC Test [SPR-13733] #18306
  • Background initialization option for JPA EntityManagerFactory / Hibernate SessionFactory [SPR-13732] #18305
  • Revise AbstractJackson2HttpMessageConverter's generic type adaptation [SPR-13728] #18301
  • Improve support for custom HTTP verbs in Spring MVC Test [SPR-13719] #18292
  • Differentiate between TypeDescriptors with same annotations but different attributes [SPR-13714] #18287
  • Hibernate5 metadata access [SPR-13710] #18285
  • RedirectView should allow for bypassing HttpServletResponse#encodeRedirectURL [SPR-13693] #18268
  • Caffeine caching support [SPR-13690] #18265
  • PathMatchingResourcePatternResolver does not consider manifest based classpaths [SPR-13685] #18260
  • Add @RestControllerAdvice annotation [SPR-13673] #18248
  • ResourceHttpRequestHandler does not take into account mime types configured in WebMvcConfigurerAdapter [SPR-13658] #18233
  • Add HTTP status 451: Unavailable For Legal Reasons [SPR-13632] #18210
  • Allow specifying HTTP response Content-Type without losing default charset [SPR-13631] #18209
  • Support SpEL next to placeholders in annotation attributes (e.g. @Scheduled) [SPR-13625] #18203
  • Add support for x-forwarded- HttpServletRequest wrapping [SPR-13614] #18192
  • @Value cannot be used as aliased meta-annotation [SPR-13603] #18181
  • Clarify how to prevent overwriting Cache-Control when @SessionAttribute is used [SPR-13598] #18176
  • SystemEnvironmentPropertySource should try to replace hyphens as well [SPR-13594] #18172
  • Make use of native doUpgrade operation in Undertow 1.3.5+ / 1.4 [SPR-13593] #18171
  • Cannot inject List even using @Named [SPR-13585] #18162
  • Support @SendTo at the class level [SPR-13578] #18155
  • MockMvc: jsonpath with skip prefix [SPR-13577] #18154
  • resttemplate multipart post with InputStreamResource not working [SPR-13571] #18147
  • @DateTimeFormat's JSR-310 formatter is not strict in case of pattern [SPR-13567] #18143
  • ability to set response status on ModelAndView [SPR-13560] #18136
  • allow ResponseStatus on Controller class [SPR-13547] #18123
  • empty set in MVC @ModelAttribute is null [SPR-13502] #18080
  • Full support for Jackson 2.7 [SPR-13483] #18062
  • Support @Cache* as merged composed annotations [SPR-13475] #18054
  • Detect @Autowired constructors for configuration classes [SPR-13471] #18050
  • Support custom qualifier annotations in @Transactional [SPR-13452] #18032
  • Introduce predefined composed annotations in core Spring [SPR-13442] #18022
  • Use AnnotatedElementUtils instead of AnnotationUtils wherever feasible [SPR-13440] #18020
  • Coerce @ResponseBody CharSequences to strings [SPR-13423] #18002
  • Request parameters cannot bind to Optional<List> [SPR-13418] #17997
  • Support MessageSourceResolvable to string argument value at SpringValidatorAdapter [SPR-13406] #17986
  • Prevent binding for @ModelAttribute [SPR-13402] #17982
  • Flexible locale resolution based on supported languages [SPR-13330] #17915
  • @MessageMapping should support generically typed Message argument with converted payload [SPR-13288] #17878
  • BCP 47 compatible Locale support [SPR-13274] #17865
  • JsonView support for JMS [SPR-13237] #17828
  • Better parameterized type serialization for the request body in RestTemplate [SPR-13154] #17745
  • @ComponentScan should be repeatable [SPR-13151] #17742
  • Spring should have default support for OPTIONS, HEAD and Allow [SPR-13130] #17721
  • MockRestRequestMatchers should have matchers for form data [SPR-13044] #17636
  • Generics support improvement for core.convert.support.GenericConversionService [SPR-12948] #17541
  • Support multiple composed annotations on a single annotated element [SPR-13486] #17490
  • Add support to enhance default resource loader [SPR-12857] #17455
  • Support of client interceptors in Spring's AsyncRestTemplate [SPR-12538] #16971
  • Make @Autowired optional on a single constructor of a class decorated with @Component [SPR-12278] #16883
  • @Autowired does not work for target bean of type Collection [SPR-12180] #16794
  • Improve @PropertySource loading support [SPR-12116] #16732
  • MVC config should register custom arguments resolvers with default ExceptionHandlerExceptionResolver [SPR-12058] #16674
  • Allow @SendToUser applied to class [SPR-12047] #16663
  • UriTemplate does not escape semicolons in path segments [SPR-11652] #16275
  • MockRestServiceServer should allow for an expectation to occur multiple times. [SPR-11365] #15991
  • @ExceptionHandler cannot handler java.lang.Error despite the annotation accept ? extends Throwable [SPR-11106] #15732
  • Allow adding resources to ReloadableResourceBundleMessageSource [SPR-10314] #14948
  • Log at info level when skipping an application context due to profile not being active [SPR-10202] #14835
  • Spring MVC Test support for expectations on multivalue response headers [SPR-10087] #14720
  • UriComponents cannot process collections [SPR-9712] #14346
  • Using Spring beans as a part of key in cache annotations (@Cacheable etc.) doesn't work [SPR-9578] #14212
  • Cannot reference FactoryBean in a SpEL expression [SPR-9511] #14145
  • Provide means to configure multithreaded access for cache abstraction [SPR-9254] #13892
  • Allow the use of custom PropertySource annotations in @Configuration classes [SPR-8963] #13603
  • Support @Autowired-like self injection [SPR-8450] #13096
  • Limit size of context cache in the TestContext framework [SPR-8055] #12710
  • Allow for normal bean wiring semantics for types assignable to Map [SPR-7915] #12570
  • Spring AOP proxies with annotation-based pointcuts are not serializable [SPR-6910] #11575
  • PathMatchingResourcePatternResolver should close jar file from JarURLConnection if not cached [SPR-6295] #10961
  • Adding trim-capability to property configurers [SPR-5839] #10509
  • Allow DispatcherServlet/ServletWrappingController to work with the extended WebDAV methods [SPR-4799] #9476

🪲 Bug Fixes

  • In the latest 4.3 snapshots HttpEntityMethodProcessor uses a Java 8 API [SPR-14086] #18658
  • Transitive implicit aliases do not always work with @AliasFor in merged annotations [SPR-14069] #18641
  • Behaviour of configuration class constructor injection changes with the presence of @Configuration [SPR-14015] #18587
  • Fix order of arguments passed to assert in HeaderResultMatchers#string(String, String) [SPR-14004] #18576
  • Optional autowire of Map<String, BeanType> accidentally falls back to unrelated Map<String, String> [SPR-13963] #18536
  • Part list/array gets resolved to all parts in current request [SPR-13893] #18467
  • Container tries to autowire dependencies despite explicit arguments given [SPR-13808] #18381

📔 Documentation

  • FormTag's "modelAttribute" should consistently supersede "commandName" [SPR-14094] #18666
  • Cache documentation wrongly states that Java does not support repeating annotations [SPR-14012] #18584
  • [doc] Update reference on RestTemplate test support to mention strategies and option to test using MockMvc as the server [SPR-13815] #18388

Don't miss a new spring-framework release

NewReleases is sending notifications on new releases.