ECOM 1F0 2018-19 BTB JHipster
Jump to navigation
Jump to search
Installation
Pré-requis :
Installation basique avec npm :
- Mettre à jour npm :
npm install -g npm
- Installer JHipster :
npm install -g generator-jhipster
Choix du type de Base De Données
Base De Données basée sur la mémoire (utilisant Docker Compose) :
- Plus facile à mettre en place
- MAIS vidée à la fermeture de l'application
Base De Données externe (MariaDB, MySQL, PostGreSQL...) :
- Nécessite la modification des propriétés de Spring boot : src/main/resources/config/application-*.yml
- Persistent
- Personnalisable
Création des entités
Pour chaque entité créée, nous avons besoin :
D'une table de Base De Données D'un ensemble de changements Liquibase D'une entité JPA D'un dépôt de données JPA Spring D'un controller REST MVC Spring doté des opérations CRUD de base D'un routeur Angular, un composant et un service D'une vue HTML De tests d'intégration De tests de performance
Pour chaque relation créée, nous avons besoin :
D'une clé externe de Base De Données De code spécifique JavaScript et HTML pour gérer cette relation
MAIS JHIPSTER NOUS SAUVE LA VIE : JHipster génère tout le code et les configurations requises, de la vue HTML Angular au changelog Liquibase
Pour cela, plusieurs outils :
- => Entity sub-generator (ligne de commandes)
- Bref tutoriel
- Génération depuis un fichier JDL : jhipster import-jdl your-jdl-file.jh
- Les relations peuvent être créées avant que l'autre partie existe
- /!\ Les relations doivent être définies dans les deux sens /!\
jhipster entity <entityName> --[options] jhipster entity --help
- => JHipster UML (outil graphique)
- Outil graphique rendant la génération plus aisée
- Installation : npm install -g jhipster-uml
- Lancement depuis un fichier JDL : jhipster-uml yourFileName.jh
- => JDL Studio (Utilisation du langage spécifique en ligne)
- Outil semi-graphique rendant la génération plus aisée
- L'UML affiché est mis à jour par l'utilisation du langage JDL
Utilisation
- Lancement du côté serveur :
./mvnw
- Lancement du côté client :
npm start
Bon à savoir
- Possibilité de tests simples sur les entités avec mvn test
- Possibilité de lancer l'application avec mvn
- Type Blob : un objet Blob, Utilisé pour stocker des données binaires. Lorsque ce type est sélectionné, le sous-générateur vous demandera si vous voulez stocker des données binaires génériques, un objet image, ou un CLOB (long texte). Les images seront prises en charges spécifiquement du coté Angular, afin d'être affichée pour l'utilisateur final
- /!\ Les champs ne peuvent contenir des mots réservés dans les technologies utilisées /!\
- JHipster génère des tests unitaires qui fonctionnent pour les entités génériques, sans connaissance des règles de validation personnalisées : il est possible que les tests générés ne passent pas les règles de validation. Dans ce cas, il est nécessaire de mettre à jour les valeurs de base utilisées dans les tests unitaires, afin de passer les règles de validation.
- Les DTO sont une option. Une option que nous souhaitons pour la couche services. En parlant de | services.
- Les entités peuvent être filtrées en utilisant JPA afin de compléter les fonctionnalités de base de CRUD.
- La pagination peut être : nulle ; simple (Bootstrap) ; complète (Bootstrap) ou en déroulement infini (directive de déroulement infini)
- /!\ Le code personnalisé est écrasé lors de la mise à jour des entités /!\
Sources
Informations tirées de la documentation JHipster :