Aujourd’hui, lorsque vous dé­ve­lop­pez une ap­pli­ca­tion Web, vous avez le choix entre dif­fé­rents gé­né­ra­teurs de code et fra­me­works. Ces outils et bases de code vous per­met­tront d’éco­no­mi­ser un temps non né­gli­geable dans votre projet. Il n’est cependant pas si facile de trouver et de réunir des com­po­santes qui tra­vail­le­ront en parfaite harmonie et qui s’adap­te­ront à votre ap­pli­ca­tion. C’est la raison pour laquelle l’équipe de JHipster a rassemblé dans la pla­te­forme du même nom certains des fra­me­works les plus appréciés pour le dé­ve­lop­pe­ment des parties serveur et client. Cette com­bi­nai­son de Spring Boot, AngularJS, Bootstrap et de nom­breuses autres com­po­santes est dis­po­nible en­tiè­re­ment en open source et convient par­fai­te­ment pour la création d’ap­pli­ca­tions Web modernes et de mi­cro­ser­vices.

Qu’est-ce que JHipster ?

Avec une poignée d’autres dé­ve­lop­peurs, Julien Dubois a publié en octobre 2013 le projet JHipster (forme abrégée de « Java Hipster »). Le nom fut choisi en premier lieu pour le concept du gé­né­ra­teur d’ap­pli­ca­tions Web, puisque JHipster devait réunir Java et tous les outils de dé­ve­lop­pe­ment Web po­pu­laires à l’époque. Aujourd’hui, la suite de fra­me­works cible en par­ti­cu­lier le secteur des en­tre­prises et met l’accent sur le fait de permettre une pro­duc­ti­vité élevée lors du processus de dé­ve­lop­pe­ment ainsi qu’une ex­cel­lente qualité de l’ap­pli­ca­tion dé­ve­lop­pée. Le dé­ve­lop­pe­ment permanent de la suite est assuré par une équipe composée de 15 dé­ve­lop­peurs prin­ci­paux, et de centaines de con­tri­bu­teurs. Le code JHipster, distribué sous la licence Apache 2.0, est à la libre dis­po­si­tion de toutes les personnes in­té­res­sées sur GitHub.

Vue d’ensemble des com­po­santes de JHipster

JHipster fournit aussi bien des solutions pour la création et la con­cep­tion d’in­ter­faces que les outils né­ces­saires au dé­ve­lop­pe­ment de serveur. Le framework Spring Boot constitue par exemple une base parfaite pour générer une pile Java solide côté serveur qui pourra être connectée en toute sim­pli­cité à diverses bases de données, machines vir­tuelles et outils de mo­ni­to­ring et reliée au client via une interface REST. JHipster supporte notamment les options logiques suivantes :

  • Base de données : MariaDB, Post­greSQL, Oracle, MySQL, MongoDB
  • Vir­tua­li­sa­tion : Docker, Ku­ber­netes, AWS
  • En­vi­ron­ne­ment de test : Karma, Cucumber
  • In­dexa­tion : Elas­tic­Search
  • Mise en cache : Ehcache, In­fi­nis­pan
  • Mo­ni­to­ring : Pro­me­theus

En ce qui concerne le dé­ve­lop­pe­ment côté client, JHipster mise prin­ci­pa­le­ment sur le framework Ja­vaS­cript Angular.js et sur la bi­blio­thèque Ja­vaS­cript React. Ces deux outils peuvent être combinés au choix avec Twitter Bootstrap, lui-même pré­cur­seur des fra­me­works web ainsi qu’avec le modèle Web al­ter­na­tif HTML5 Boi­ler­plate. JHipster peut être complété avec le langage de feuille de style Sass qui facilite la con­cep­tion via CSS3.

Les outils tels que le gé­né­ra­teur de code Yeoman, le module bundler Ja­vaS­cript Webpack ou les ap­pli­ca­tions de gestion de build Gulp (pour Ja­vaS­cript) et Maven et Gradle (pour Java) ga­ran­tis­sent un workflow optimal lors de l’uti­li­sa­tion de ces dif­fé­rentes solutions ori­gi­nales.

Quels sont les avantages offerts par un dé­ve­lop­pe­ment avec JHipster ?

Comme le montre la liste ci-dessus, la col­lec­tion JHipster se démarque notamment par le fait que les dif­fé­rentes com­po­santes s’accordent par­fai­te­ment les unes avec les autres. L’uti­li­sa­tion de cette suite doit être im­pé­ra­ti­ve­ment prise en con­si­dé­ra­tion si vous souhaitez pro­gram­mer votre projet Web avec Java. JHipster réduit les obstacles de départ liés au dé­ve­lop­pe­ment, simplifie et uni­for­mise l’in­té­gra­lité du processus de pro­gram­ma­tion, que ce soit pour le dé­ve­lop­pe­ment de l’ap­pli­ca­tion à pro­pre­ment parler ou pour les révisions et ex­ten­sions ul­té­rieures du code. Les prin­ci­paux outils de dé­ve­lop­pe­ment étant di­rec­te­ment à votre dis­po­si­tion avec JHipster, l’uti­li­sa­tion de cette suite de fra­me­works vous fait gagner un temps con­si­dé­rable.

JHipster vous permet également de générer en un temps record une ap­pli­ca­tion web qui supporte les opé­ra­tions CRUD et dispose d’un code source clai­re­ment structuré. D’autres fonc­tion­na­li­tés telles que la gestion des uti­li­sa­teurs ou l’in­ter­na­li­sa­tion sont également dis­po­nibles.

Tutoriel JHipster : ins­tal­la­tion et premiers pas dans le pack JHipster

Après cette courte in­tro­duc­tion au concept de JHipster, le tutoriel suivant vous ex­pli­quera comment installer cette suite de frameworks. Nous vous pré­sen­tons également les premières étapes qu’il convient de maîtriser pour utiliser cette structure de code.

Étape 1 : ins­tal­la­tion de JHipster

Vous disposez de plusieurs pos­si­bi­li­tés pour installer JHipster. Vous pouvez par exemple accéder à la « de­ve­lop­ment box » qui est basée sur le logiciel Vagrant et exécute JHipster sur une machine virtuelle Ubuntu. Pour les fans de Docker, le generator jhipster sur GitHub devrait néanmoins s’avérer plus in­té­res­sant. Il fournit une image qui vous aidera à exécuter la suite de fra­me­works dans Docker. Il est bien sûr également possible de procéder à une ins­tal­la­tion locale classique sur votre propre serveur en utilisant npm ou Yarn comme ges­tion­naire de paquets. Yarn étant le choix re­com­mandé par l’équipe de dé­ve­lop­peurs, nous l’avons utilisé comme base pour le processus d’ins­tal­la­tion de ce tutoriel JHipster. Et voici le processus en question :

  1. Té­lé­char­gez les paquets d’ins­tal­la­tion pour Java SE 8 depuis le site d’Oracle puis installez l’en­vi­ron­ne­ment d’exécution.
  2. Té­lé­char­gez les paquets d’ins­tal­la­tion depuis Node.js sur la page du pres­ta­taire et installez-les également. L’équipe JHipster re­com­mande dans ce cadre une version 64 bits avec support à long terme (LTS).
  3. Installez Yarn sur votre serveur en suivant les ins­truc­tions spé­ci­fiques à votre système dans le ré­per­toire d’ins­tal­la­tion du site de Yarn.
Note

Si vous avez déjà installé une ou plusieurs des ap­pli­ca­tions men­tion­nées ici, vous pouvez évi­dem­ment sauter les étapes d’ins­tal­la­tion cor­res­pon­dantes.

Le ges­tion­naire de paquets vous permet à présent d’obtenir et d’installer l’ap­pli­ca­tion du gé­né­ra­teur Yeoman et fi­na­le­ment JHipster. Pour ce faire, saisissez les commandes suivantes l’une après l’autre :

yarn global add yo
yarn global add generator-jhipster
Note

Avec JHipster Online, vous disposez par ailleurs d’une al­ter­na­tive ne né­ces­si­tant aucune ins­tal­la­tion pour utiliser ce pack de fra­me­works. Le service génère une ap­pli­ca­tion JHipster complète que vous pouvez soit héberger sur un compte GitHub existant soit té­lé­char­ger au format ZIP.

Étape 2 : création de votre premier projet

Une fois tous les com­po­sants installés, vous pouvez faire vos premiers pas avec le gé­né­ra­teur JHipster et créer un premier projet type. Pour ce faire, vous aurez tout d’abord besoin d’un ré­per­toire sur votre système (appelé ici « exemple-jhipster ») dans lequel vous pourrez en­re­gis­trer les fichiers cor­res­pon­dants. La même chose peut être obtenue à l’aide de cette commande simple :

mkdir exemple-jhipster

Naviguez ensuite dans le ré­per­toire créé et exécutez-y la commande de lancement JHipster :

yo jhipster

Le gé­né­ra­teur vous présente alors une série de questions qui vous permettra de définir le type d’ap­pli­ca­tion et de sé­lec­tion­ner les fonc­tion­na­li­tés et le logiciel souhaités. De cette façon, vous pouvez définir si un mécanisme de mise en cache doit être im­plé­menté ou quel outil de con­cep­tion du serveur (Gradle ou Maven) doit être utilisé. D’autre part, activez si né­ces­saire la prise en charge de l’in­ter­na­tio­na­li­sa­tion pour votre projet et sé­lec­tion­nez la langue de base et les variantes lin­guis­tiques sup­plé­men­taires. Dans la plupart des cas, la valeur pré-pa­ra­mé­trée suffit pour notre projet test.

Image: terminal macOS : génération d’un projet JHipster type
terminal macOS : gé­né­ra­tion d’un projet JHipster type

Si vous avez trouvé la con­fi­gu­ra­tion de votre choix, vous pouvez lancer le processus de gé­né­ra­tion. Si ce dernier se déroule sans accroc, vous recevez au­to­ma­ti­que­ment une in­for­ma­tion d’exécution après un bref laps de temps qui vous indique que les ap­pli­ca­tions de serveur et de client ont pu être générées avec succès.

Image: Message de statut JHipster après une génération réussie
Message de statut JHipster après une gé­né­ra­tion réussie

Étape 3 : lancement de l’ap­pli­ca­tion serveur et connexion au serveur

JHipster a désormais créé le cadre de base de votre ap­pli­ca­tion Web et en­re­gis­tré le code cor­res­pon­dant dans le ré­per­toire créé au préalable. À partir de celui-ci, vous pouvez main­te­nant démarrer votre propre instance de serveur basée sur Spring Boot. La commande à utiliser pour y parvenir dépend de l’outil que vous avez choisi pour la con­cep­tion du serveur. Si votre choix s’est porté sur Maven, exécutez les com­po­santes du serveur à l’aide du wrapper Maven intégré à JHipster en entrant la commande suivante :

./mvnw (sous macOS/Linux)
mvnw (sous Windows)

Si vous avez opté pour Gradle, la commande né­ces­saire est la suivante :

./gradlew (sous macOS/Linux)
gradlew (sous Windows)
Note

Si vous avez installé Maven ou Gradle sur votre système, les commandes « mvn » ou « gradle » suffisent.

Si vous n’avez pas indiqué d’autre port lors de la gé­né­ra­tion de votre projet JHipster (le port 8080 est réservé par défaut), vous pouvez à présent consulter le serveur à l’adresse “http://localhost:8080” dans tout na­vi­ga­teur courant. Vous ouvrez ainsi la page d’accueil qui vous permet de vous connecter au serveur.

Image: Page d’accueil JHipster Welcome, Java Hipster !
Page d’accueil JHipster Welcome, Java Hipster !

La page fournit également les données standard pour l’accès ad­mi­nis­tra­teur et l’accès uti­li­sa­teur simple :

Compte ad­mi­nis­tra­teur Compte uti­li­sa­teur
Nom admin user
Mot de passe admin user

Étape 4 : ad­mi­nis­tra­tion de votre projet JHipster

Dans le cadre de la connexion au compte ad­mi­nis­tra­teur, la barre de menu de l’instance de serveur est complétée avec les deux points « Ad­mi­nis­tra­tion » et « Entités ». Le premier point vous servira à gérer votre ap­pli­ca­tion web. Vous dis­po­se­rez alors des options suivantes :

  • Gestion des uti­li­sa­teurs : dans la gestion des uti­li­sa­teurs, vous pourrez créer, éditer et supprimer les profils d’uti­li­sa­teur ayant accès à votre ap­pli­ca­tion JHipster. Il est notamment possible de répartir des rôles de cette façon.
  • Pa­ra­mètres de l’ap­pli­ca­tion : dans la rubrique Pa­ra­mètres, vous trouverez des in­di­ca­tions sur l’uti­li­sa­tion de la mémoire ainsi que des in­for­ma­tions sur les requêtes HTTP entrantes et sur les sta­tis­tiques de service et de mise en cache.
  • Statut de l’ap­pli­ca­tion : dans « Santé », vous trouverez un petit aperçu de la fonc­tion­na­lité des com­po­santes de votre ap­pli­ca­tion telles que l’espace disque dur ou les bases de données.
  • Con­fi­gu­ra­tion : le bouton « Con­fi­gu­ra­tion » vous permet d’ouvrir le menu pour les pa­ra­mètres généraux de votre projet JHipster.
  • Audits : les audits vous donnent un aperçu des ten­ta­tives de connexion réussies (AU­THEN­TI­CA­TION_SUCCESS) et avortées (AU­THEN­TI­CA­TION_FAILURE) incluant des in­for­ma­tions sur le moment de la connexion et l’uti­li­sa­teur.
  • Pro­to­coles/journaux : vous pourrez consulter ici les mé­ca­nismes de journaux actifs. Vous avez par ailleurs la pos­si­bi­lité de définir un niveau de jour­na­li­sa­tion (aver­tis­se­ment, in­for­ma­tion, traçage, message d’erreur, etc.).
  • Vue d’ensemble des API : dans la vue d’ensemble des API, vous verrez toutes les in­ter­faces REST de votre ap­pli­ca­tion, y compris les codes pour le contrôle de ces API (peut être déployé pour chaque API).
  • Base de données : fi­na­le­ment, le serveur JHipster offre également une interface pour les bases de données qui vous permet de tester et d’établir la connexion.

À travers l’onglet « Langue », vous pouvez de plus modifier la version lin­guis­tique de l’interface de votre instance de serveur Spring Boot.

XRREt1KB4Y8.jpg Pour afficher cette vidéo, des cookies de tiers sont né­ces­saires. Vous pouvez consulter et modifier vos pa­ra­mètres de cookies ici.

Étape 5 : création de nouvelles entités

À l’étape pré­cé­dente, nous avons déjà évoqué le second point de menu du serveur JHipster, intitulé « Entités ». Celui-ci a également son im­por­tance. Ces unités, que vous pouvez consulter, éditer ou supprimer à tout moment (grâce au concept CRUD déjà mentionné), vous four­nis­sent des données pour vos bases de données et donc des contenus pour votre projet. Vous disposez de dif­fé­rentes pos­si­bi­li­tés pour créer des entités de ce type dans JHipster : la solution standard est le gé­né­ra­teur Entity Sub uti­li­sable via l’invite de commande. La syntaxe de ce gé­né­ra­teur se présente comme suit :

jhipster entity <entityname> -- [options]</entityname>

Afin de connaître les pos­si­bi­li­tés de cet outil, il est re­com­mandé de saisir « jhipster entity --help ». Cette commande liste les options dis­po­nibles (comme le montre la capture d’écran suivante) :

Image: Édition de la commande help pour le générateur Entity Sub dans le terminal macOS
Édition de la commande help pour le gé­né­ra­teur Entity Sub dans le terminal macOS

Vous pouvez également générer les entités à l’aide d’un outil graphique. Pour ce faire, vous avez deux pos­si­bi­li­tés : l’éditeur UML JHipster UML que vous trouverez sur GitHub ainsi que l’ap­pli­ca­tion en ligne JDL-Studio qui est basée sur le langage JDL (JHipster Domain Language) spé­ci­fique au domaine.

Image: JDL-Studio : entités types
JDL-Studio : entités types
Aller au menu principal