Exemple utilisant le générateur JHipster
Introduction
L’outil JHipster s’appuie sur Yeoman qui est un générateur de code que nous pouvons exécuter pour générer des applications complètes ou des parties utiles d’une application. Ce générateur peut être étendu pour générer ce que nous voulons. Les générateurs Yeoman font la promotion de ce que l’équipe Yeoman appelle le Yeoman workflow. Il s’agit d’une pile d’outils côté client qui peut aider les développeurs à créer rapidement de belles applications web. Il y a tout le nécessaire pour travailler sans les difficultés habituelles associées à une configuration manuelle.
Il peut être utilisé via :
-
une installation complète
-
le site web https://start.jhipster.tech/
-
une image Docker
Nous utilisons la version dockérisée car elle est simple à utiliser et permet de générer des applications réactives.
Installation via Docker
Nous pouvons installer JHipster via Docker. Les exemples utilisent la version de développement (8.0.0-beta.2).
JHipster dispose d’un Dockerfile spécifique, qui fournit une image Docker.
Il réalise une construction Docker automated build disponible sur : https://hub.docker.com/r/jhipster/jhipster/
Cette image vous permet d’exécuter JHipster à l’intérieur de Docker.
Prérequis :
-
(Recommandé) Docker Desktop : le moyen le plus simple de construire, exécuter et tester les applications dockerisées. Docker Desktop est livré avec une interface graphique pour gérer les conteneurs/images/volumes, les outils de développement Docker, le support de Kubernetes et bien plus encore.
-
Docker Engine : application client-serveur avec interface en ligne de commande (CLI). Suivez les instructions d’installation de Docker Engine.
Puisque les fichiers générés se trouvent dans votre dossier partagé, ils ne seront pas supprimés si vous arrêtez votre conteneur Docker. Cependant, si vous ne voulez pas que Docker télécharge toutes les dépendances Maven et NPM à chaque fois que vous démarrez le conteneur, vous devriez enregistrer son état ou monter un volume.
Avertissement : selon votre OS, votre DOCKER_HOST sera différent. Sur Linux, ce sera votre localhost. Pour Mac/Windows, vous devrez obtenir l’IP en utilisant la commande suivante : docker-machine ip default.
Sur Linux, vous devrez peut-être exécuter la commande Docker en tant qu’utilisateur root si votre utilisateur ne fait pas partie du groupe Docker. Il est recommandé d’ajouter votre utilisateur au groupe...
Génération du code
Pour regarder les sources générées, nous créons une application en choisissant tout par défaut, sauf :
-
Webflux
-
base R2DBC
Étude du code généré
Pour cette section, nous avons utilisé la dernière version disponible au moment de la rédaction de cet ouvrage, il s’agit de la version 8.0.0-beta2.
Nous pourrions prendre cette application générée comme point de départ pour concevoir une application d’exemple pour nos futurs projets. C’est aussi un cadre intéressant pour étudier une mise en œuvre très complète.
La version de spring-boot est la 3.1.1 que nous migrons en 3.1.2.
groupId |
artefactId |
Version |
Utilité |
tech.jhipster |
jhipster-framework |
8.0.0-beta.2 |
Framework de génération d’applications Spring Boot + Angular/React/Vue |
org.springframework.boot |
spring-boot-configuration- processor |
3.1.2 |
Processeur pour les métadonnées de configuration Spring Boot |
org.springframework.boot |
spring-boot-loader-tools |
3.1.2 |
Outils pour charger les applications Spring Boot |
org.springframework.boot |
spring-boot-starter- actuator |
3.1.2 |
Starter pour les fonctionnalités de gestion de production |
org.springframework.boot |
spring-boot-starter-data-r2dbc |
3.1.2 |
Starter pour l’utilisation de Spring Data R2DBC |
org.springframework.boot |
spring-boot-starter-logging |
3.1.2 |
Starter pour le logging avec Logback |
org.springframework.boot |
spring-boot-starter-mail |
3.1.2 |
Starter pour l’utilisation du mailing |
org.springframework.boot |
spring-boot-starter-oauth2-resource- server |
3.1.2 |
Starter pour la création d’un serveur de ressources OAuth2 |
org.springframework.boot |
spring-boot-starter- security |
3.1.2 |
Starter pour les fonctionnalités de sécurité Spring Boot |
org.springframework.boot |
spring-boot-starter-test |
3.1.2 |
Starter pour les tests avec Spring Boot |
org.springframework.boot |
spring-boot-starter-thymeleaf |
3.1.2 |
Starter pour l’utilisation de Thymeleaf comme moteur de templates |
org.springframework.boot |
spring-boot-starter- validation |
3.1.2 |
Starter pour la validation Java Bean |
org.springframework.boot |
spring-boot-starter-webflux |
3.1.2 |
Starter pour les applications web réactives avec Spring WebFlux |
org.springframework.boot |
spring-boot-test |
3.1.2 |
Support pour les tests Spring Boot |
org.springframework .security |
spring- security-test |
3.1.2 |
Support pour les tests de sécurité Spring |
org.springdoc |
springdoc- openapi- starter-webflux-api |
3.1.2 |
Starter pour la documentation API avec SpringDoc pour... |
Conclusion
JHipster est un outil de génération d’applications robuste et éprouvé qui combine plusieurs technologies de pointe pour fournir une base solide pour le développement d’applications modernes. Lorsqu’il s’agit de créer des applications fondées sur Spring WebFlux, JHipster offre une multitude d’avantages.
-
Rapidité de démarrage : avec JHipster, la mise en place d’une application Spring WebFlux est grandement accélérée. Ce qui pourrait prendre des jours ou des semaines manuellement peut être accompli en quelques minutes avec JHipster.
-
Bonnes pratiques intégrées : JHipster intègre les meilleures pratiques pour le développement d’applications, garantissant ainsi que l’application générée est non seulement fonctionnelle, mais aussi optimisée et sécurisée.
-
Personnalisation : bien que JHipster automatise de nombreux aspects du développement, il offre également une grande flexibilité pour personnaliser l’application selon les besoins spécifiques du projet.
-
Intégration avec d’autres technologies : JHipster prend en charge l’intégration avec une variété de bases de données, d’outils d’authentification et d’autres technologies, garantissant que l’application...