ECOM 1F0 2018-19 BTB JHipster

From air
Revision as of 14:51, 16 October 2018 by Zoran.Chanet (talk | contribs) (Ajout de la section utilisation)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Installation

Pré-requis :

  • Java 8
  • Node.js utilisez une version LTS 64-bit, les versions non-LTS ne sont pas supportées

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 :