
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. Optional
→ Object
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
- 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}
- 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.
- Eseguire Test di Integrazione: sfruttare la nuova API versioning nei test client-side e validare i proxy HTTP generati dalla DSL.
- 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:
Articoli correlati

Come disintossicarsi dallo smartphone

Best practices architetturali per API

Cosa è Entity Framework

Flutter 3.32

Lavoro Contabile Reggio Emilia
