Spring Framework 7.0.0-M4

Spring Framework 7.0.0-M4

Spring Framework 7.0.0‑M4, rilasciato il 17 aprile 2025, introduce importanti novità per il metadata reading con la nuova Class‑File API di Java 24, un converter che “srotola” automaticamente Optional<T>, una registry DSL per client HTTP dichiarativi e aggiornamenti all’API versioning con supporto client-side e in test. La milestone include inoltre migliorie nella documentazione, aggiornamenti delle dipendenze e piccole ottimizzazioni di usabilità. Per migrare a questa versione, è necessario aggiornare il baseline JDK (17–27), adeguare le coordinate Maven/Gradle e verificare il funzionamento delle nuove API in un ambiente di test dedicato.

Novità principali in Spring Framework 7.0.0-M4

1. Class‑File API per Java 24+

Spring Framework adotta per runtime Java 24+ la nuova Class‑File API (JEP 484) per leggere e scrivere bytecode senza dipendere da ASM forked. Il ClassFileMetadataReader sostituisce silenziosamente l’implementazione tradizionale di MetadataReaderFactory, migliorando la compatibilità e riducendo il codice ombra.

2. OptionalObject Converter

Grazie al nuovo OptionalToObjectConverter, ogni Optional<T> può essere “unwrapped” automaticamente nel suo valore interno in contesti come SpEL o binding su metodi. Questo semplifica scenari in cui, ad esempio, un controller riceve Optional<String> e si attende una stringa oppure null.

List<String> list = List.of("a");
Optional<String> opt = list.stream().findFirst(); 
String s = conversionService.convert(opt, String.class);  // restituisce "a"

3. Client HTTP Dichiarativi

Viene introdotta una DSL estendibile per la registrazione dinamica di proxy HTTP tramite HttpServiceProxyFactory e un registry dedicato. Permette di definire, con pochi metodi, più client HTTP parametrizzati e pronti all’iniezione nel contesto Spring.

@Bean
HttpServiceRegistry httpRegistry(WebClient.Builder builder) {
  return HttpServiceRegistries.builder(builder)
    .register(MyService.class)
    .build();
}

4. API Versioning Update

L’API versioning, già introdotta nelle milestone precedenti, ottiene ora supporto client-side e nelle suite di test, facilitando la gestione di controller e consumer che rispondono a versioni diverse delle stesse API.

5. Documentazione e Dipendenze

Oltre alle feature, 7.0.0‑M4 aggiorna varie dipendenze interne (es. ASM, testing libs) e migliora la documentazione delle reference guide, rendendo più semplice la consultazione dei cambiamenti tra milestone.

6. Registrazione Programmatica di Bean

Si segnalano anche evoluzioni nell’API di registrazione dei bean a runtime, con metodi registerBean(…) più flessibili e parametrici per scenari avanzati di AOT e modularity.

Elenco Completo delle Novità – Spring Framework 7.0.0-M4

  • ClassFileMetadataReader per Java 24+ (JEP 484)
  • OptionalToObjectConverter per unwrap di Optional<T>
  • HTTP Interface Registry DSL per client declarativi 
  • API versioning: supporto client e test 
  • Migliorie alla documentazione e upgrade dipendenze 
  • Programmatic Bean Registration estesa
  • Aggiornamenti a Spring Core, Web, WebFlux, Test, etc. (visti su Maven Central)

Perché e Come Effettuare la Migrazione

Requisiti di Sistema

Spring Framework 7.0 mantiene il baseline Java 17–27 e richiede Jakarta EE 11 per i moduli web/ORM. Come indicato nella roadmap, la generazione 7.0 continuerà a supportare Java 17 ma abbraccerà JDK 25 LTS e Jakarta EE 11 (Tomcat 11, Hibernate 7).

Passi di Aggiornamento – Spring Framework 7.0.0-M4

  1. Aggiornare il Parent POM/Dependency Management:
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-framework-bom</artifactId>
      <version>7.0.0-M4</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>
``` :contentReference[oaicite:17]{index=17}  

  1. Verificare il JDK: assicurarsi che il CI e i locali usino JDK 17+ e, se possibile, testare con JDK 24/25 per sfruttare la Class‑File API.
  2. Eseguire Test di Integrazione: sfruttare la nuova API versioning nei test client-side e validare i proxy HTTP generati dalla DSL.
  3. Adattare il Codice: rimuovere eventuali workaround per ASM, usare direttamente l’OptionalToObjectConverter invece di un unwrap manuale, e sostituire call ad API deprecate segnalate negli upgrade notes.

Best Practices

  • Migrare per milestone: integrare M4 in un branch dedicato, risolvere i warning di compilazione e test, poi promuovere in staging prima del GA.
  • Mantenere aggiornato il changelog: consultare continuamente le note di rilascio e il changelog GitHub per cogliere eventuali breaking changes non documentati in prima battuta.

Conclusione – Spring Framework 7.0.0-M4

Spring Framework 7.0.0‑M4 consolida la strada verso l’innovazione con Java 24+, un sistema di conversione più fluido per Optional e un approccio dichiarativo ai client HTTP, mantenendo al contempo il supporto LTS per Java 17 e Jakarta EE 11. Effettuare la migrazione fin da ora, in un contesto controllato, permette di validare in anticipo nuove funzionalità e ottenere un’applicazione più resiliente e performante.

(fonte)

Innovaformazione, scuola informatica specialistica segue costantemente i trend di mercato e affianca le aziende nella formazione continua dei team di sviluppatori. Trovate il nostro Corso Spring Java Framework rivolto alle aziende.

INFO: info@innovaformazione.net – tel. 3471012275 (Dario Carrassi)

Vuoi essere ricontattato? Lasciaci il tuo numero telefonico e la tua email, ti richiameremo nelle 24h:

    Ti potrebbe interessare

    Articoli correlati