JHipster : la suite de frameworks pour des applications Web modernes

Aujourd’hui, lorsque vous développez une application Web, vous avez le choix entre différents générateurs de code et frameworks. Ces outils et bases de code vous permettront d’économiser un temps non négligeable dans votre projet. Il n’est cependant pas si facile de trouver et de réunir des composantes qui travailleront en parfaite harmonie et qui s’adapteront à votre application. C’est la raison pour laquelle l’équipe de JHipster a rassemblé dans la plateforme du même nom certains des frameworks les plus appréciés pour le développement des parties serveur et client. Cette combinaison de Spring Boot, AngularJS, Bootstrap et de nombreuses autres composantes est disponible entièrement en open source et convient parfaitement pour la création d’applications Web modernes et de microservices.

Qu’est-ce que JHipster ?

Avec une poignée d’autres développeurs, 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érateur d’applications Web, puisque JHipster devait réunir Java et tous les outils de développement Web populaires à l’époque. Aujourd’hui, la suite de frameworks cible en particulier le secteur des entreprises et met l’accent sur le fait de permettre une productivité élevée lors du processus de développement ainsi qu’une excellente qualité de l’application développée. Le développement permanent de la suite est assuré par une équipe composée de 15 développeurs principaux, et de centaines de contributeurs. Le code JHipster, distribué sous la licence Apache 2.0, est à la libre disposition de toutes les personnes intéressées sur GitHub.

Vue d’ensemble des composantes de JHipster

JHipster fournit aussi bien des solutions pour la création et la conception d’interfaces que les outils nécessaires au développement 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 simplicité à diverses bases de données, machines virtuelles et outils de monitoring et reliée au client via une interface REST. JHipster supporte notamment les options logiques suivantes :

  • Base de données : MariaDB, PostgreSQL, Oracle, MySQL, MongoDB
  • Virtualisation : Docker, Kubernetes, AWS
  • Environnement de test : Karma, Cucumber
  • Indexation : ElasticSearch
  • Mise en cache : Ehcache, Infinispan
  • Monitoring : Prometheus

En ce qui concerne le développement côté client, JHipster mise principalement sur le framework JavaScript Angular.js et sur la bibliothèque JavaScript React. Ces deux outils peuvent être combinés au choix avec Twitter Bootstrap, lui-même précurseur des frameworks web ainsi qu’avec le modèle Web alternatif HTML5 Boilerplate. JHipster peut être complété avec le langage de feuille de style Sass qui facilite la conception via CSS3.

Les outils tels que le générateur de code Yeoman, le module bundler JavaScript Webpack ou les applications de gestion de build Gulp (pour JavaScript) et Maven et Gradle (pour Java) garantissent un workflow optimal lors de l’utilisation de ces différentes solutions originales.

Quels sont les avantages offerts par un développement avec JHipster ?

Comme le montre la liste ci-dessus, la collection JHipster se démarque notamment par le fait que les différentes composantes s’accordent parfaitement les unes avec les autres. L’utilisation de cette suite doit être impérativement prise en considération si vous souhaitez programmer votre projet Web avec Java. JHipster réduit les obstacles de départ liés au développement, simplifie et uniformise l’intégralité du processus de programmation, que ce soit pour le développement de l’application à proprement parler ou pour les révisions et extensions ultérieures du code. Les principaux outils de développement étant directement à votre disposition avec JHipster, l’utilisation de cette suite de frameworks vous fait gagner un temps considérable.

JHipster vous permet également de générer en un temps record une application web qui supporte les opérations CRUD et dispose d’un code source clairement structuré. D’autres fonctionnalités telles que la gestion des utilisateurs ou l’internalisation sont également disponibles.

Tutoriel JHipster : installation et premiers pas dans le pack JHipster

Après cette courte introduction au concept de JHipster, le tutoriel suivant vous expliquera comment installer cette suite de frameworks. Nous vous présentons également les premières étapes qu’il convient de maîtriser pour utiliser cette structure de code.

Étape 1 : installation de JHipster

Vous disposez de plusieurs possibilités pour installer JHipster. Vous pouvez par exemple accéder à la « development 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 intéressant. Il fournit une image qui vous aidera à exécuter la suite de frameworks dans Docker. Il est bien sûr également possible de procéder à une installation locale classique sur votre propre serveur en utilisant npm ou Yarn comme gestionnaire de paquets. Yarn étant le choix recommandé par l’équipe de développeurs, nous l’avons utilisé comme base pour le processus d’installation de ce tutoriel JHipster. Et voici le processus en question :

  1. Téléchargez les paquets d’installation pour Java SE 8 depuis le site d’Oracle puis installez l’environnement d’exécution.
  2. Téléchargez les paquets d’installation depuis Node.js sur la page du prestataire et installez-les également. L’équipe JHipster recommande dans ce cadre une version 64 bits avec support à long terme (LTS).
  3. Installez Yarn sur votre serveur en suivant les instructions spécifiques à votre système dans le répertoire d’installation du site de Yarn.
Note

Si vous avez déjà installé une ou plusieurs des applications mentionnées ici, vous pouvez évidemment sauter les étapes d’installation correspondantes.

Le gestionnaire de paquets vous permet à présent d’obtenir et d’installer l’application du générateur Yeoman et finalement 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 alternative ne nécessitant aucune installation pour utiliser ce pack de frameworks. Le service génère une application JHipster complète que vous pouvez soit héberger sur un compte GitHub existant soit télécharger au format ZIP.

Étape 2 : création de votre premier projet

Une fois tous les composants installés, vous pouvez faire vos premiers pas avec le générateur JHipster et créer un premier projet type. Pour ce faire, vous aurez tout d’abord besoin d’un répertoire sur votre système (appelé ici « exemple-jhipster ») dans lequel vous pourrez enregistrer les fichiers correspondants. La même chose peut être obtenue à l’aide de cette commande simple :

mkdir exemple-jhipster

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

yo jhipster

Le générateur vous présente alors une série de questions qui vous permettra de définir le type d’application et de sélectionner les fonctionnalités et le logiciel souhaités. De cette façon, vous pouvez définir si un mécanisme de mise en cache doit être implémenté ou quel outil de conception du serveur (Gradle ou Maven) doit être utilisé. D’autre part, activez si nécessaire la prise en charge de l’internationalisation pour votre projet et sélectionnez la langue de base et les variantes linguistiques supplémentaires. Dans la plupart des cas, la valeur pré-paramétrée suffit pour notre projet test.

Si vous avez trouvé la configuration de votre choix, vous pouvez lancer le processus de génération. Si ce dernier se déroule sans accroc, vous recevez automatiquement une information d’exécution après un bref laps de temps qui vous indique que les applications de serveur et de client ont pu être générées avec succès.

Étape 3 : lancement de l’application serveur et connexion au serveur

JHipster a désormais créé le cadre de base de votre application Web et enregistré le code correspondant dans le répertoire créé au préalable. À partir de celui-ci, vous pouvez maintenant 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 conception du serveur. Si votre choix s’est porté sur Maven, exécutez les composantes 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écessaire 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ération 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 navigateur courant. Vous ouvrez ainsi la page d’accueil qui vous permet de vous connecter au serveur.

La page fournit également les données standard pour l’accès administrateur et l’accès utilisateur simple :

  Compte administrateur Compte utilisateur
Nom admin user
Mot de passe admin user

Étape 4 : administration de votre projet JHipster

Dans le cadre de la connexion au compte administrateur, la barre de menu de l’instance de serveur est complétée avec les deux points « Administration » et « Entités ». Le premier point vous servira à gérer votre application web. Vous disposerez alors des options suivantes :

  • Gestion des utilisateurs : dans la gestion des utilisateurs, vous pourrez créer, éditer et supprimer les profils d’utilisateur ayant accès à votre application JHipster. Il est notamment possible de répartir des rôles de cette façon.
  • Paramètres de l’application : dans la rubrique Paramètres, vous trouverez des indications sur l’utilisation de la mémoire ainsi que des informations sur les requêtes HTTP entrantes et sur les statistiques de service et de mise en cache.
  • Statut de l’application : dans « Santé », vous trouverez un petit aperçu de la fonctionnalité des composantes de votre application telles que l’espace disque dur ou les bases de données.
  • Configuration : le bouton « Configuration » vous permet d’ouvrir le menu pour les paramètres généraux de votre projet JHipster.
  • Audits : les audits vous donnent un aperçu des tentatives de connexion réussies (AUTHENTICATION_SUCCESS) et avortées (AUTHENTICATION_FAILURE) incluant des informations sur le moment de la connexion et l’utilisateur.
  • Protocoles/journaux : vous pourrez consulter ici les mécanismes de journaux actifs. Vous avez par ailleurs la possibilité de définir un niveau de journalisation (avertissement, information, traçage, message d’erreur, etc.).
  • Vue d’ensemble des API : dans la vue d’ensemble des API, vous verrez toutes les interfaces REST de votre application, y compris les codes pour le contrôle de ces API (peut être déployé pour chaque API).
  • Base de données : finalement, 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 linguistique de l’interface de votre instance de serveur Spring Boot.

Pour afficher cette vidéo, des cookies de tiers sont nécessaires. Vous pouvez consulter et modifier vos paramè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 importance. Ces unités, que vous pouvez consulter, éditer ou supprimer à tout moment (grâce au concept CRUD déjà mentionné), vous fournissent des données pour vos bases de données et donc des contenus pour votre projet. Vous disposez de différentes possibilités pour créer des entités de ce type dans JHipster : la solution standard est le générateur Entity Sub utilisable via l’invite de commande. La syntaxe de ce générateur se présente comme suit :

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

Afin de connaître les possibilités de cet outil, il est recommandé de saisir « jhipster entity --help ». Cette commande liste les options disponibles (comme le montre la capture d’écran suivante) :

Vous pouvez également générer les entités à l’aide d’un outil graphique. Pour ce faire, vous avez deux possibilités : l’éditeur UML JHipster UML que vous trouverez sur GitHub ainsi que l’application en ligne JDL-Studio qui est basée sur le langage JDL (JHipster Domain Language) spécifique au domaine.