Spring Boot 3.5 : Guide complet des nouvelles fonctionnalités
Virtual Threads natifs, observabilité améliorée, support GraalVM, Docker Compose intégré… Tout ce que vous devez savoir sur Spring Boot 3.5 pour vos projets Java.
Spring Boot 3.5 : l'écosystème Java entreprise modernisé
Spring Boot 3.5 consolide la révolution lancée avec Spring Boot 3.0 et apporte des améliorations majeures en termes de performance, observabilité et expérience développeur. Avec le support natif de Java 21, l'intégration des Virtual Threads et l'amélioration de la compatibilité GraalVM, c'est la version la plus aboutie du framework.
Chez ITCE, nous utilisons Spring Boot 3.5 sur la majorité de nos projets backend. Voici les fonctionnalités qui font la différence au quotidien.
Virtual Threads : activation en une ligne
Spring Boot 3.5 supporte nativement les Virtual Threads de Java 21. L'activation est triviale :
# application.properties
spring.threads.virtual.enabled=true
Avec cette simple propriété, Spring Boot utilise automatiquement les Virtual Threads pour :
- Le traitement des requêtes HTTP (Tomcat, Jetty, Undertow)
- Les listeners JMS et Kafka
- Les tâches @Scheduled et @Async
- Les connexions base de données via JDBC
Résultat : sur nos benchmarks internes, un microservice Spring Boot traite 5x plus de requêtes concurrentes avec les Virtual Threads activés, sans modification de code.
Observabilité : Micrometer + OpenTelemetry intégrés
Spring Boot 3.5 offre un support first-class pour l'observabilité avec Micrometer Observation API et OpenTelemetry :
@RestController
public class OrderController {
@GetMapping("/orders/{id}")
@Observed(name = "order.find", contextualName = "find-order")
public Order findOrder(@PathVariable Long id) {
return orderService.findById(id);
}
}
Les métriques, traces distribuées et logs sont collectés automatiquement et exportés vers Grafana, Jaeger, Datadog ou tout autre backend OpenTelemetry compatible.
Configuration minimale requise :
# application.yaml
management:
tracing:
sampling:
probability: 1.0
otlp:
tracing:
endpoint: http://jaeger:4318/v1/tracesDocker Compose Support : développement local simplifié
Spring Boot 3.5 détecte et lance automatiquement vos services Docker Compose au démarrage de l'application :
# docker-compose.yaml (détecté automatiquement)
services:
postgres:
image: postgres:16
ports:
- "5432:5432"
environment:
POSTGRES_DB: myapp
POSTGRES_PASSWORD: secret
redis:
image: redis:7
ports:
- "6379:6379"
Spring Boot configure automatiquement les DataSources et ConnectionFactories correspondants. Plus besoin de Testcontainers ou de scripts de démarrage.
Images natives GraalVM : démarrage en millisecondes
La compilation native via GraalVM est désormais stable dans Spring Boot 3.5 :
# Compilation native
./mvnw -Pnative native:compile
# Ou avec Buildpacks
./mvnw -Pnative spring-boot:build-image
Résultats typiques sur nos projets :
- Temps de démarrage : de 3-5s à 50-100ms
- Consommation mémoire : de 200MB à 50MB
- Taille de l'image Docker : de 300MB à 80MB
Idéal pour les architectures serverless (AWS Lambda, Azure Functions) et les microservices à forte élasticité.
Bonnes pratiques Spring Boot 3.5 en entreprise
Nos recommandations issues de dizaines de projets livrés :
- Structurez par feature, pas par couche : préférez des packages par domaine métier plutôt que par couche technique
- Utilisez les Testcontainers pour les tests d'intégration — Spring Boot 3.5 les supporte nativement
- Activez les Virtual Threads en production — c'est stable et le gain est immédiat
- Adoptez l'Observation API dès le début du projet pour une observabilité complète
- Profilez avec JFR (Java Flight Recorder) intégré pour identifier les goulots d'étranglement
Besoin d'aide pour votre architecture Spring Boot ? Contactez nos experts pour un accompagnement sur mesure.
Questions fréquentes
Spring Boot 3.5 nécessite-t-il Java 21 obligatoirement ?
Non, Spring Boot 3.5 fonctionne avec Java 17 minimum. Cependant, Java 21 est fortement recommandé pour bénéficier des Virtual Threads et des dernières optimisations de performance.
Comment migrer de Spring Boot 2.x vers 3.5 ?
La migration de Spring Boot 2.x vers 3.x est significative (namespace javax → jakarta). Utilisez l'outil OpenRewrite avec la recette 'org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_5' pour automatiser la majorité des changements.
Spring Boot 3.5 est-il compatible avec Spring Cloud ?
Oui, Spring Cloud 2024.x est pleinement compatible avec Spring Boot 3.5 et propose des starters utilisables pour Eureka, Config Server, Gateway et Circuit Breaker.