Génération automatique de code front-end et back-end dans un projet Spring Cloud

Ce tutoriel explique comment automatiser la génération de code pour les couches front-end et back-end d'un microservice Spring Cloud. L'outil utilisé est un générateur de code personnalisé, inspiré de l'approche renren-generator mais adapté à notre architecture.

  1. Récupération du générateur de code

git clone https://gitee.com/renrenio/renren-generator.git

Copiez le dossier renren-generator dans la racine du projet PassJava. Ajoutez ensuite le module dans le fichier pom.xml parent :

<module>renren-generator</module>

  1. Configuration du générateur

2.1 Base de données

Dans src/main/resources/application-dev.yml, modifiez les paramètres de connexion :

url: jdbc:mysql://129.211.188.xxx:3306/passjava_qms?useUnicode=true&characterEncoding=UTF-8&useSSL=false
username: root
password: root

2.2 Paramètres métier

Dans src/main/resources/generator.properties, définsisez le package, l'auteur et le préfixe des tables :

mainPath=com.jackson0714
package=com.jackson0714.passjava
moduleName=question
author=jackson0714
tablePrefix=qms_

2.3 Adaptation du template Controller

Dans src/main/resources/template/Controller.java.vm, retirez les imports Shiro superflus et commentez les annotations correspondantes (elles seront ajoutées ultérieurement) :

// import org.apache.shiro.authz.annotation.RequiresPermissions;

// @RequiresPermissions("${moduleName}:${pathName}:list")

  1. Lancement du générateur

Démarrez l'application. Ouvrez http://localhost dans un navigateur : la console affiche les tables de la base passjava_qms (par exemple qms_question et qms_type).

  1. Génération et intégration du code

  • Cliquez sur Générer le code pour chaque table.
  • Copiez le dossier main généré dans le module passjava-question/src.
  • Supprimez le répertoire passjava-question/src/main/resources/src (code front-end inutile ici).

Le code généré comprend les contrôleurs, DAO, entités, implémentations de services et fichiers de mapping MyBatis.

  1. Ajout du module commun

Certaines classes utilitaires sont référencées par le code généré. Créez un module passjava-common (Maven) et ajoutez-y les dépendances suivantes dans son pom.xml :

<!-- MyBatis-Plus -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus</artifactId>
    <version>3.2.0</version>
</dependency>

<!-- Lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.12</version>
</dependency>

<!-- httpcore -->
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpcore</artifactId>
    <version>4.4.12</version>
</dependency>

<!-- commons-lang -->
<dependency>
    <groupId>commons-lang</groupId>
    <artifactId>commons-lang</artifactId>
    <version>2.6</version>
</dependency>

<!-- Servlet API (scope provided) -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    <scope>provided</scope>
</dependency>

  1. Import des classes utilitaires

Copiez depuis le projet renren-fast les fichiers suivants dans com.jackson0714.common.utils :

  • Constans.java
  • PageUtils.java
  • Query.java
  • R.java
  • RRException.java

Et dans com.jackson0714.common.xss :

  • HTMLFilter.java
  • SQLFilter.java
  1. Liaison entre modules

Dans le pom.xml du module passjava-question, ajoutez la dépendance vers le module commun :

<dependency>
    <groupId>com.jackson0714.passjava</groupId>
    <artifactId>passjava-common</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>

Après ces étapes, le microservice passjava-question est capable d'utiliser le code généré pour les opérations CRUD de base.

Étiquettes: Spring Cloud MyBatis-Plus Renren Generator Code Generation Microservices

Publié le 10 octobre à 19h12