Spring Framework - v6.1.0-m5


:star: New Features

  • JdbcClient should reject a List as the parameter of the IN clause of an SQL statement when using positional parameters #31215
  • Support one-time @Scheduled tasks #31211
  • Deprecate JOptCommandLinePropertySource #31207
  • Use MergedAnnotations API directly in AnnotationBeanNameGenerator where possible #31203
  • Introduce MethodInvoker API for TestExecutionListeners #31199
  • Use Method#isDefault to find default methods in interfaces #31197
  • Refine logic to release WebSocket ByteBuffer via Callback with Jetty 12 #31182
  • Make ReactorClientHttpConnector lifecycle-aware #31180
  • Make ReactorResourceFactory lifecycle-aware #31178
  • Consolidate HTTP Interface client support for MultipartFile and @RequestPart #31164
  • Register reflection hints for @TestPropertySource factory #31160
  • Introduce TaskDecorator variant for Context Propagation #31130
  • Replace Reactive awaitSingle() usages by the Mono variant #31127
  • Clarify and log that return value of HandlerMethod is ignored if reason of @ResponseStatus present #31121
  • Instrument RestClient for Observability #31114
  • Attempt to reset Servlet response before calling ExceptionHandlers #31104
  • Raise log level to warn when configuration class enhancement cannot apply due to circular reference #31102
  • Refine "checkpoint on refresh" error handling #31096
  • Deprecate convention-based @Component stereotype names in favor of @AliasFor #31093
  • Reinstate support for legacy JSR-250 @javax.annotation.ManagedBean and JSR-330 @javax.inject.Named annotations #31090
  • Look up @Component stereotype names using @AliasFor semantics #31089
  • Add @Nullable to value in param() methods in JdbcClient #31084
  • Ensure direct @PropertySource annotations override meta-annotations #31074
  • Introduce var-args params() method in JdbcClient's StatementSpec #31070
  • Introduce overloaded methods in JdbcTestUtils that accept JdbcClient instead of JdbcOperations #31066
  • Revise JdbcTestUtils method signatures to accept JdbcOperations instead of JdbcTemplate #31065
  • Adapt native support for Hibernate 6.3.0 bytecode provider changes #31051
  • Move blocking writeResource operation to boundedElastic #30928
  • Move blocking view resolution to boundedElastic #30903
  • Support parameter injection in @BeforeTransaction/@AfterTransaction methods #30736
  • Introduce getContentAsString() in ContentCachingRequestWrapper #30709
  • Support configuring Jetty WebSocket server parameters #30344
  • Optimize InlineMap and InlineList in SpEL #30251
  • Update Pointcuts to match getter methods by also excluding void return type #30068
  • Improve attribute handling in RequestPredicates #30028
  • Add support for JSR-330 and Jakarta @Inject for autowiring test constructors #29851
  • Optimize initial size in ContentCachingRequestWrapper when contentCacheLimit set #29775
  • Optimize Hibernate native footprint by making ByteBuddy unreachable #29549
  • Execute preflight checks before interceptors #29509
  • Use Arrays.hashCode(...) in ObjectUtils #29051
  • Improve toString representation of complex parameters in SimpleKey #27670
  • Propagate CoroutineContext in CoWebFilter #27522
  • Add ParameterNamesModule to "well known" jackson modules #27511
  • Optimize for single TransactionSynchronization #27335
  • Improve performance of CompositePropertySource#getPropertyNames #27236
  • Avoid calling executeBatch() with 0 batch size #27154
  • Add maxAttempts to ExponentialBackOff #27071
  • Spring Webflux: CoRouterFunctionDsl should expose the used CoroutineContext #27010
  • spring-webflux filters don't pass CoroutineContext #26977
  • Support declarative ContextCustomizer registration in the TestContext framework #26148
  • Improve SpEL inline collection caching #25921
  • Use Comparable instead of dedicated implementations #25478
  • Support method injection when @Autowired(require=false) is used on mixed nullability args #24773
  • Add factory method to create a NamedThreadLocal with an initial value #24705
  • CglibAopProxy: Skip non-overridden methods of Object.class as those which for sure have no advice #24649
  • Add conversion support for Pattern/Regex #24311
  • Support quoted identifiers in SimpleJdbcInsert #24013
  • Add composite for TaskDecorator #23692
  • Spring AOP is not compatible with Kotlin Coroutines #22462
  • Added Basic Authorization for UrlResource #1822
  • Allow component name to be specified in @ControllerAdvice [SPR-16566] #21108
  • MethodValidationInterceptor support for Mono and Flux method parameters #20781
  • Support validating collection of objects on web controller method #16917

:lady_beetle: Bug Fixes

  • AOT check on a bean definition with an instance supplier is not consistent #31200
  • Pass correct SqlParameterSource to NamedParameterJdbcTemplate in DefaultJdbcClient #31195
  • Various methods in SimpleJdbcInsert prevent method chaining #31177
  • Client observations URI template missing when using RestTemplateAdapter #31144
  • Validator resolution can no longer be lazy #31137
  • Make the JdbcClient method update(KeyHolder generatedKeyHolder) work with positional parameters #31122
  • AOT processing fails for @ConfigurationProperties class without default constructor #31117
  • Built-in method validation does not work with Boot auto-configuration #31082

:notebook_with_decorative_cover: Documentation

  • Stop referring to JDO and outdated JDBC versions in documentation #31183
  • WebFlux blocking configuration documentation fix #31150
  • typo in "such as" #31145
  • Fix typo in reference documentation #31135
  • Document RestClient in the reference manual #30826
  • Add example of buffering with WebClient to the reference documentation #28758

:hammer: Dependency Upgrades

  • Upgrade to Context Propagation 1.1.0-M4 #31220
  • Upgrade to CRaC 1.4.0 #31190
  • Upgrade to Jetty 12 #30698
  • Upgrade to Kotlin 1.9.10 #31106
  • Upgrade to Kotlin Coroutines 1.7.3 #31108
  • Upgrade to Kotlin Serialization 1.6.0 #31107
  • Upgrade to Micrometer 1.12.0-M3 #31218
  • Upgrade to Reactor 2023.0.0-M3 #31219

:heart: Contributors

Thank you to all the contributors who worked on this release:

@70825, @Anton-Vasilev, @Arooba-git, @FlorianLehmann, @Li0n13, @Sam-Kruglov, @SammyVimes, @Shawyeok, @TAKETODAY, @alecmus, @annabuyevich, @aooohan, @asgh, @bdshadow, @chenqimiao, @enimiste, @garyrussell, @hzmpay, @izeye, @kilink, @kitaisreal, @liaozan, @making, @marschall, @mdeinum, @midumitrescu, @quaff, @rwinch, @ryanrupp, @stsypanov, @tianshuang, @ttddyy, @valfirst, @wind57, @x-x-z, and @yuzawa-san


Details

date
Sept. 14, 2023, 9:56 a.m.
name
v6.1.0-M5
type
Pre-release
👇
Register or login to:
  • 🔍View and search all Spring Framework releases.
  • 🛠️Create and share lists to track your tools.
  • 🚨Setup notifications for major, security, feature or patch updates.
  • 🚀Much more coming soon!
Continue with GitHub
Continue with Google
or