Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Java Spring
  3. Exemple utilisant le générateur JHipster
Extrait - Java Spring Construisez vos applications réactives avec une architecture micro-services en environnement Jakarta EE (2e édition)
Extraits du livre
Java Spring Construisez vos applications réactives avec une architecture micro-services en environnement Jakarta EE (2e édition) Revenir à la page d'achat du livre

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 :

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