AXOPEN

Spring Boot – Le meilleur framework Java en 2018 ?

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 API.

framework spring boot

Un peu d’histoire…

La révolution des APIs change la manière de concevoir les applications. Historiquement, lorsqu’on 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 d’encapsuler la logique métier de l’application.

Dans le bouillonnement des débuts de Java, 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 d’applications Java EE tels que JBoss, WebSphere, WebLogic… L’idée ici n’est pas de faire l’historique 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 d’avoir fait le meilleur choix. Les deux mondes s’influencent, 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 l’univers du web. Les principales raisons sont :

  • L’incapacité 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 l’application 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 l’essor de trois framework Javascript majeurs : Angular, React, et Vue.js. Peu importe votre choix, nous nous intéressons ici à la manière de concevoir son API.

Conception d’API

Les web services des API gèrent deux grands formats de données : SOAP (un formalisme XML) et REST (format libre en réalité, JSON dans la plupart des cas). L’objectif 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 d’application certifié, tel que WildFly, alors qu‘en Spring, un simple serveur web (léger) tel que Tomcat suffit.

Déployer une API de services sur un serveur d’applications Java EE est complexe : configuration, packaging, sélection des modules… cela nécessite du temps et de l’expertise. A l’heure 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 d’autre. Vous pouvez très simplement utiliser les frameworks dont vous avez besoin (Hibernate, par exemple, ou n’importe quelle brique du Spring classique), Spring vous package le tout en un rien de temps.

Spring Boot : pourquoi on l’aime ?

En un mot, Spring Boot vous offre toute la puissance d’un serveur d’applications 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 d’annotations est très facile à prendre en main. Bref Spring Boot, on recommande !