Spring Boot – Le meilleur framework Java ?

Zoom et retour d'expérience sur le framework Spring Boot
Pierre LISERONMis à jour le 26 Juin 2018
framework-spring-boot.jpg

La mode est aux micro services, aux conteneurs légers, ou de manière générale à la conception de services simples regroupés en APIUne API est un programme permettant à deux applications distinctes de communiquer entre elles et d’échanger des données..

Un peu dhistoire

La révolution des APIs change la manière de concevoir les applications. Historiquement, lorsquon souhaitait faire du web en Java, il était nécessaire de concevoir une application capable de servir à la fois des pages HTML statiques et des pages webs dynamiques, ainsi que dencapsuler la logique métier de lapplication.

Dans le bouillonnement des débuts de JavaLangage de développement très populaire !, de nombreux frameworks web ont vu le jour, tels que JSP et JSF, portés par des serveurs webs tels que Tomcat, et des serveurs dapplications Java EE tels que JBoss, WebSphere, WebLogic Lidée ici nest pas de faire lhistorique des technologies, mais de mettre en perspective le contexte général de leur émergence avec leurs objectifs initiaux.

Java EE et Spring : les deux plateformes tirent leur épingle du jeu

Deux plateformes se sont progressivement imposées au fil du temps : le standard officiel Java EE et le framework Spring. Chacun a ses avantages, et chaque chapelle se targue bien sûr davoir fait le meilleur choix. Les deux mondes sinfluencent, et partagent le principe de la génération des pages côté serveur.

Depuis quelques années, ce principe est largement remis en cause dans lunivers du web. Les principales raisons sont :

  • Lincapacité des serveurs à monter en charge avec un gros volume de connexions
  • Le transfert systématique de tous les éléments de la page entre deux navigations
  • La difficulté de créer des applications réactives à cause du réseau
  • La diversité des périphériques cibles

Génération de la page web et traitement des données

Les informaticiens étant des personnes réfléchies et partisanes du moindre effort ont décidé de couper ce lien fort qui existait entre la génération de la page web et le traitement des données. Ainsi, les données sont désormais traitées au sein des API et la gestion de la page est déportée côté client (le navigateur en l’occurrence, ou lapplication mobile).

Cette évolution représente un changement de paradigme très profond. Elle remet en cause toutes les technologies arrivées à maturité et installées dans le concept ancien où le serveur fait tout et le client ne fait rien. Elle est portée par lessor de trois framework Javascript majeurs : Angular, ReactReact est un framework de développement JavaScript populaire., et Vue.jsFramework JavaScript populaire. . Peu importe votre choix, nous nous intéressons ici à la manière de concevoir son API.

Conception dAPI

Les web services des API gèrent deux grands formats de données : SOAPSOAP (Simple Object Access Protocol) est un protocole de communication. (un formalisme XML) et RESTREST (REpresentational State Transfer) est un style d'architecture logicielle qui fonctionne sous un certain nombre de contraintes. (format libre en réalité, JSON dans la plupart des cas). Lobjectif est toujours le même : fournir un service déporté à une application tierce. Mais on privilégiera le REST pour les applications web rapides, et le SOAP pour des applications dont le besoin de contrôle est supérieur.

Java EE VS Spring pour les API

Revenons à notre sujet : en Java, Spring comme Java EE permettent depuis longtemps de réaliser des web services. Néanmoins, dans le cas de Java EE, cela nécessite le recours à un serveur dapplication certifié, tel que WildFly, alors quen Spring, un simple serveur web (léger) tel que Tomcat suffit.

Déployer une API de services sur un serveur dapplications Java EE est complexe : configuration, packaging, sélection des modules cela nécessite du temps et de lexpertise. A lheure actuelle, Java EE avance lentement vers la voie du cloud (trop lentement, serait-on tenté de dire).

De son côté Spring propose Spring Boot, une approche module particulièrement rapide et efficace pour créer une API de web services. En quelques lignes de code, avec un (tout) petit projet Maven ou Gradle, on obtient un .jar directement exécutable. Tout est compris, les briques du serveur web dont vous avez besoin, et rien dautre. Vous pouvez très simplement utiliser les frameworks dont vous avez besoin (Hibernate, par exemple, ou nimporte quelle brique du Spring classique), Spring vous package le tout en un rien de temps.

Spring Boot : pourquoi on laime ?

En un mot, Spring Boot vous offre toute la puissance dun serveur dapplications en ne conservant que ce dont vous avez réellement besoin. Et les performances sont au rendez vous ! La sérialisation JSON fonctionne nativement, et le routage à base dannotations est très facile à prendre en main. Bref Spring Boot, on recommande !