github spring-projects/spring-framework v7.1.0-M2

pre-release3 hours ago

⭐ New Features

  • Align DispatcherServlet bean detection logs #37296
  • Extract bean property path support into PropertyPath #37275
  • Expose matched PathPattern as MVC request attribute #37272
  • Add a configurable limit for maximum nesting depth in property paths #37252
  • Enforce "data: " (with space) prefix for outgoing SSE data payloads #37242
  • Parse RFC 9651-like date headers #37224
  • Polish ScheduledAnnotationBeanPostProcessor to refine null-safety #37219
  • Add batch update support to JdbcClient #37216
  • Emit multipart parts with empty bodies in PartGenerator #37202
  • Upgrade to HtmlUnit 5 #37194
  • Ignore invalid SSE retry field #37193
  • Handle MIME type parameter names case-insensitively #37192
  • Deprecate SpelParserConfiguration constructors in favor of the builder API #37190
  • When connection to client is lost while writing JSON, it should not be logged as warning #37151
  • JMS SimpleMessageConverter.fromMessage() can return null despite @NullMarked package #37148
  • Avoid unnecessary allocations for cached annotation mappings #37141
  • Update MockCookie#parse(String) validation #37136
  • Add WebFlux OpenTelemetry observation convention #37131
  • Limit bracket depth in PropertyEditorRegistrySupport's addStrippedPropertyPaths() #37020
  • Improve efficiency of map creation in DataBinder #37019
  • Reject overlapping declared and generated key columns in SimpleJdbcInsert #37014
  • Reject MIME type parameters differing only in case #37008
  • Use depth-aware bracket parsing in PropertyAccessorUtils #36999
  • Account for all array objects when checking array size in SpEL #36998
  • Align SpEL's default max auto-grow size with Spring data binding #36995
  • Avoid redundant registration of Date/Calendar/Long converters in DefaultFormattingConversionService #36951
  • Suppress CGLIB validation WARN for lifecycle callbacks #36935
  • Add Cache-Control must-understand directive #36918
  • validate samesite attribute in ResponseCookie #36905
  • Close contexts when clearing test context cache #36825
  • Use immutable map for static cache in TypeDescriptor #36813
  • Add a configurable limit for structural nesting depth in SpEL expressions #36723
  • Simplify programmatic scheduling of cron tasks with time zone #36556
  • Deprecate Derby support #36045
  • Add support for generating resources linked to a feature #35862
  • Add RFC 10008 (QUERY HTTP method) support #34993

🐞 Bug Fixes

  • PartGenerator.switchToFile() doesn't count buffered bytes toward maxDiskUsagePerPart #37238
  • Reject write methods not starting with "set" in Property #37139
  • Meta-annotations with attributes are still unnecessarily synthesized in MergedAnnotations #37135
  • Use the 4-argument Property constructor in SpEL's ReflectivePropertyAccessor #37123
  • Fix BeanFactory.getBean(String, ParameterizedTypeReference) to respect AOP proxy #37047
  • Fix OptionalToObjectConverter applicability check #36913
  • Fix Property name resolution for record-style accessors #36911

📔 Documentation

  • Fix RestClient API usage in documentation #37137
  • Add Validation section examples #36190

🔨 Dependency Upgrades

  • Upgrade to Kotlin 2.4.20 #37271
  • Upgrade to Micrometer 1.18.0-M2 and Tracing 1.8.0-M2 #37288
  • Upgrade to Reactor 2026.0.0-M2 #37263

❤️ Contributors

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

@DevJunz, @Eymenonar, @Sineaggi, @Will-thom, @blackdurumi, @cookie-meringue, @desiderantes, @dxbjavid, @froggy0m0, @gregjotau, @heka1024, @junhyeong9812, @junhyung8795, @kilink, @lArtiquel, @marschall, @mateo-maza, @ngocnhan-tran1996, @noojung, @quaff, @sabberworm, @seonwooj0810, @shaggyinsomniac, @verhasi, and @vpavic

Don't miss a new spring-framework release

NewReleases is sending notifications on new releases.