fond

Spring Boot 3, c'est quoi ?

Spring Boot 3 est la dernière version majeure et stable du framework de développement Spring Boot, majoritairement utilisé pour réaliser des applications web.
decoration

Qu’est-ce que Spring Boot 3 ?

Spring BootFramework Java se basant sur Spring. 3 est la dernière version majeure et stable du framework de développement Spring Boot. Attendue depuis un moment par les développeurs, cette nouvelle version embarque avec elle de nombreuses nouvelles fonctionnalités intéressantes (on vous en dit plus ci-dessous).

Afin de pouvoir bénéficier de ces nouveautés et plus globalement de s’assurer de la pérennité de vos applications, il faudra migrer de Spring Boot 2 à SpringBoot 3. Heureusement pour vous, Spring Boot évoluant lentement, vous avez un peu de temps pour faire cette mise à jour (la version 2.x sera encore maintenue jusqu’à la date du 18 février 2025).

Quelles sont les nouveautés de Spring Boot 3 ?

Comme toute version majeure, la version de Spring Boot 3 apporte de nombreuses fonctionnalités au coeur du système. Voici un condensé des plus importantes :

Java 17

Dans cette dernière version de Spring Boot, JavaLangage de développement très populaire ! 17 est la version minimum requise. À chaque grande montée de version, Spring boot s’adapte pour utiliser au minimum la dernière version LTS de Java.

L’utilisation de Java 17 nous permet d’utiliser les dernières grandes nouveautés comme l’ajout des record, les blocs de texte (avec l’utilisation des triples quotes) ainsi que le Pattern Matching. Pour profiter pleinement de cette dernière version, nous vous conseillons d’utiliser les record pour représenter vos DTO (Data Transfert Object), les blocs de texte pour l’écriture de vos requêtes SQLLangage permettant de communiquer avec une base de données./HQL. Nous conseillons également d’utiliser le Patterin Matching pour auto-assigner à une variable un object automatiquement cast après une expression instanceof.

Jakarta EE

Cette troisième version signe la migration vers Jakarta EE. Pas le choix, vous allez devoir le faire sur votre projet aussi ! Attention tout de même, cette migration aura plusieurs impacts sur vos applications. Dans un premier temps, il faudra remplacer la grande majorité de vos packages javax. par jakarta.. Il faudra également vérifier que les différentes librairies que vous utilisez ont bien fait la migration vers Jakarta EE.

GraalVM / Spring Native

Une des nouveautés les plus attendues de cette version 3 était la prise en charge de la compilation native avec l’utilisation de Spring Native. Nous avons pu tester cette dernière, et honnêtement, la marche à l’entrée pour réussir à compiler votre application est assez élevée.

A notre sens, on est encore loin d’un monde dans lequel ajouter simplement la librairie Spring Native suffit pour une application Java compilée en native. Si vous souhaitez utiliser cette fonctionnalité sur votre application, nous vous conseillons d’attendre encore quelques temps pour que la technologie devienne mature.

Observabilité

Spring boot 3 améliore la prise en charge de Micrometer avec l’ajout de nouvelles configurations automatiques. Pour faciliter les interactions avec les différentes briques d’observabilité, Spring a créé une APIUne API est un programme permettant à deux applications distinctes de communiquer entre elles et d’échanger des données. unique. Après de nombreuses modifications durant l’année, on arrive enfin à une version plus stable de cette API.

ProblemDetail

Dans cette nouvelle version, Spring Boot 3 intègre l’implémentation d’un nouveau standard, celui du format des erreurs API (RFC 7807). Ce format passe par une classe ProblemDetail qui est maintenant utilisée par défaut lorsque l’on configure l’annotation @RestControllerAdvice.

Voici un exemple du format de l’exception :

{
    "type": "about:blank",
    "title": "Bad Request",
    "status": 400,
    "detail": "page can't be 0",
    "instance": "/api/v1/users"
}

HttpExchange

Cette dernière nouveauté va pouvoir vous faire gagner du temps lors de la configuration de clients HTTP. Spring Boot 3 intègre une nouvelle API HttpExchange qui permet de spécifier un client HTTP à travers des annotations et une interface Java. Si vous êtes familier avec la librairie Feign, c’est globalement la même chose, mais directement dans Spring Boot, donc vous n’avez plus besoin de rajouter de librairies supplémentaires dans votre projet.

Quels intérêts de monter de version vers Spring Boot 3 ?

Cette nouvelle version n’apporte pas de changement radical dans la manière de développer des applications sur Spring Boot. Néanmoins, cette version est la base majeure qui va servir pour toutes les nouveautés des prochaines années. Il ne faut pas rater ce créneau pour faire la mise à jour, car après le 18 février 2025, Spring Boot 2 ne sera plus maintenu et votre applicatif emportera avec lui de la dette technique et toutes les problématiques que cela comporte (difficulté à maintenir dans le temps, limites d’évolutions de l’application, etc.).

A quoi faire attention pour réussir sa migration de Spring Boot 2 vers Spring Boot 3 ?

Faire un état des lieux et identifier les points dépréciés

Comme toute grande montée de version, il est important de faire un état des lieux du projet, de lister tous les points dépréciés du projet et de les corriger. Dans ce cas, on pense notamment à la refonte de Spring Security qui a eu lieu avec Spring Boot 2.7.3 qui a déprécié tout l’ancien système.

Vérifier la compatibilité des librairies utilisées

\nLe deuxième point essentiel est de vérifier les différentes librairies que vous utilisez sur votre projet, et si elles sont bien compatibles. Dans le cadre de la migration vers Jakarta EE, cette étape est très importante, prenez bien le temps de faire les vérifications.

Bien lire les changelogs

Le dernier point (qui est loin d’être le plus drôle), nous vous conseillons de bien lire les changelogs (particulièrement la section Breaking Changes) avant de faire les montées de version de vos librairies. Cela pourra vous sauver de nombreuses heures de déboggage à ne pas comprendre pourquoi votre projet ne fonctionne plus.

Step by Step

Petit conseil bonus : focalisez-vous bien sur une tâche à la fois, et n’essayez pas de monter toutes les versions d’un coup. Montez petit à petit, cela pourra vous permettre de comprendre au mieux les impacts de vos changements, ainsi que la provenance de vos erreurs.

Accompagnement à la migration de Spring Boot 2 à Spring Boot 3

Chez AXOPEN, cela fait des années que nous réalisons des projets de développement d’applications spécifiques sur Spring Boot, et plus largement dans l’univers JAVA. Particulièrement attachés à être toujours à l’état de l’art sur les technologies, notamment pour ne pas subir les problématiques liées à la dette technique, nous sommes habitués à réaliser des montées de version d’applications Spring Boot.

En fonction de votre contexte spécifique, nous pouvons imaginer plusieurs formes d’accompagnement :

  • Externalisation de la migration Spring boot 3 d’une application en toute ou partie : vous voulez externaliser et sécuriser la montée de version d’une application complète ou d’un module spécifique.
  • Accompagnement de vos équipes à la migration : vous avez une équipe de développement en interne, et souhaitez avoir un lead pour les accompagner et les guider dans ce chantier de migration.
  • Audit migration Spring Boot 3 : vous avez réalisé la montée de version vers Springboot 3 et voulez un regard extérieur pour savoir si ça a été correctement réalisé, et savoir si vous pouvez sereinement faire évoluer votre application sur cette base technique.
Nos Références clients