其他分享
首页 > 其他分享> > JH2️⃣JDL

JH2️⃣JDL

作者:互联网

参考资料

1、JDL

JHipster Domain Language

JHipster 领域语言

1.1、JDL 形式

有 2 种形式,建议使用 JDL 文件,单行 JDL 了解即可。

本文基于 JDL 文件生成应用程序。

JDL 文件 单行 JDL
创建 手动创建,
或使用 JDL-studioIDE 插件
-
使用 指定本地文件名远程 URL,生成应用 输入配置内容,生成应用
特点 以文件形式存在(后缀为 .jh.jdl)
复用性高,可远程使用
省略了创建文件的步骤,但不具有复用性

1.2、生成应用

在服务器 CLI 中执行指令生成应用。

  1. 指令格式

    jhipster jdl [JDL文件名 ...] [--属性]
    
  2. 属性--force--json-only

    # 强制重新生成所有实体,覆盖对实体文件的所有本地更改
    jhipster jdl xxx.jdl --force
    # 跳过实体生成
    jhipster jdl xxx.jdl --json-only
    
  3. 多个文件:若有多个 JDL 文件用于生成应用程序,无需手动将文件内容合并,可同时运行

    # 单个文件
    jhipster jdl aaa.jdl
    # 多个文件
    jhipster jdl aaa.jdl bbb.jdl
    
  4. 生成内容

    • 生成应用程序:创建一个文件夹用于生成应用,在应用程序文件夹中执行指令。
    • 只生成实体:在 JHipster 应用程序的根文件夹中执行。

1.3、JDL 内容

完成应用程序配置,即可生成应用程序的基本骨架

其余内容用于完善项目内容。

  1. 应用程序配置本文内容
  2. 实体和属性枚举关联关系、常量
  3. 实体选项
  4. 部署

2、应用程序配置

application 是所有配置的 “根”

2.1、config

支持的配置

可选值 默认值 说明
applicationType monolith,
microservice,
gateway
monolith
authenticationType jwt,
session,
oauth2
jwt
baseName jhipster 应用程序名称
blueprint 已过时,字符型
blueprints Marketplace 蓝图
buildTool maven,
gradle
maven
cacheProvider caffeine,
ehcache,
hazelcast,
infinispan,
memcached,
redis,
no
ehcache/hazelcast ehcache 用于单体/网关,
hazelcast 用于微服务
clientFramework angularX,
react
angularX
clientPackageManager npm,
yarn
npm
clientTheme Something or none none
clientThemeVariant Something or primary
databaseType sql,
mongodb,
cassandra,
couchbase,
no
sql
devDatabaseType h2Disk,
h2Memory,
*
h2Disk 开发数据库
dtoSuffix DTO fasle 表示不添加后缀
enableHibernateCache true
enableSwaggerCodegen false
enableTranslation true
entitySuffix fasle 表示不添加后缀
jhiPrefix jhi
languages JHipster 支持的语言 [en, fr] 必须有中括号
messageBroker kafka,
false
false
nativeLanguage JHipster 支持的语言 en
packageName com.mycompany.myapp Java 包名
prodDatabaseType mysql,
mariadb,
mssql,
postgresql,
oracle,
no
mysql 生产数据库
reactive false
searchEngine elasticsearch,
false
false
serverPort 8080, 8081 or 9999 端口号,默认值取决于应用程序类型
serviceDiscoveryType eureka,
consul,
no
false
skipClient false
skipServer false
skipUserManagement false
testFrameworks cypress,
protractor,
cucumber,
gatling
[] 必须有中括号
websocket spring-websocket,
false
false

2.2、entities

JDL 可定义多个 entity (实体),在此基础上可使用 entities 选项

2.3、options

为实体指定选项,分为一元(unary)、二元(binary)

选项类型 可选值 默认值 说明
skipClient unary false 不生成前端代码
skipServer unary false 不生成服务器代码
noFluentMethod unary false
filter unary false 若设为 true 但未设置service,则使用serviceClass
readOnly unary false 使实体只读
dto binary mapstruct,
no
no 为实体创建 DTO。
若设为 true 但未设置 service,则使用serviceClass
service binary serviceClass,
serviceImpl,
no
no
paginate binary pagination,
infinite-scroll,
no
no 若使用 Cassandra 数据库,禁止分页
search binary elasticsearch,
no
no 前提是启用 searchEngine 选项
microservice binary custom value 为微服务应用程序内声明的每个实体自动添加
angularSuffix binary custom value
clientRootFolder binary custom value

3、实践:单体应用

生成一个 monolith 应用,需求如下

3.1、创建 JDL 文件

  1. 开启 JDL-studio,输入配置内容。

    application {
    	config {
    		applicationType monolith
            baseName myMono
            packageName indi.jaywee.mono
    		authenticationType jwt
            databaseType sql
            prodDatabaseType mysql
            devDatabaseType mysql
            cacheProvider no
            buildTool maven
            clientFramework vue
    	}
    }
    
  2. 下载 JDL 文件

    image-20220518093925828

  3. 默认文件名 jhipster-jdl,建议重命名为应用程序名称,以便标识。

    image-20220518155150952

3.2、生成应用

  1. 创建一个文件夹用于生成应用程序,切换到该文件夹。

    image-20220518093819777

  2. 使用 Xftp 上传 JDL 文件。

    image-20220518094106586

  3. 执行 jhipster 指令,等待应用程序生成。

    • jhipster jdl myMono.jdl
      
    • image-20220518160120261

3.3、数据库配置

参考 JH2️⃣部署:单体应用、微服务

  1. 为应用程序创建数据库

    CREATE DATABASE 数据库名;
    
  2. 修改配置文件

    • 路径项目文件夹\src\main\resources\config\application-dev.yml

    • 修改内容:datasource 的 URL、账号密码

    • 保存,确认配置成功修改(可在 Linux 中通过 cat 命令查看)

      image-20220511155214798

3.4、运行

4、实践:微服务(❗)

生成微服务集合,需求如下

4.1、注册中心

GitHub 克隆方式安装 Registry Center

  1. 创建应用程序目录,用于生产微服务应用

    mkdir -p /tmp/jhipster/myMicro
    cd /tmp/jhipster/myMicro
    
  2. 将 GitHub 项目克隆到当前目录

    git clone https://github.com/jhipster/jhipster-registry
    

4.2、微服务应用 & 网关

4.2.1、创建 JDL 文件

单个 JDL 文件可声明多个 application,

生成应用时会自动为不同 application 创建子文件夹。

  1. JDL-studio 输入配置内容

    application {
    	config {
    		applicationType microservice
            baseName myMicro
            serverPort 8081
            packageName indi.jaywee.micro
    		authenticationType jwt
            databaseType sql
            prodDatabaseType mysql
            devDatabaseType mysql
            cacheProvider no
            buildTool maven
            nativeLanguage en
            languages [zh-cn]
    	}
    }
    application {
    	config {
    		applicationType gateway
            baseName myGateway
            serverPort 8080
            packageName indi.jaywee.gateway
    		authenticationType jwt
            databaseType sql
            prodDatabaseType mysql
            devDatabaseType mysql
            cacheProvider no
            buildTool maven
            clientFramework vue
            nativeLanguage en
            languages [zh-cn]
    	}
    }
    
  2. 下载 JDL 文件:默认文件名 jhipster-jdl,建议重命名为应用程序名称,以便标识。

    image-20220518164545625

4.2.2、生成应用

  1. 切换到应用程序文件夹。

    cd /tmp/jhipster/myMicro
    
  2. 使用 Xftp 上传 JDL 文件。

    image-20220518164848285

  3. 执行 jhipster 指令,等待应用程序生成。

    • jhipster jdl myMicro.jdl
      
    • image-20220518165330327

    • 应用程序会在子文件夹中生成。

      image-20220518165407831

4.2.3、数据库配置

参考 JH2️⃣部署:单体应用、微服务

  1. 为应用程序创建数据库(微服务应用和网关共用)

    CREATE DATABASE 数据库名;
    
  2. 修改配置文件:微服务应用、网关都需修改。

    • 路径项目文件夹\src\main\resources\config\application-dev.yml

    • 修改内容

      • 微服务应用:datasource 的 URL、账号密码

      • 网关应用liquibase 的 URL,r2dbc 的 URL、用户名、密码

    • 保存,确认配置成功修改(可在 Linux 中通过 cat 命令查看)

4.3、运行

4.3.1、启动

启动 Registry Center

  1. 创建一个会话:用于启动注册中心,创建后自动进入会话。

    screen -S jh-registry
    
  2. 切换到 Registry center 所在目录,执行 ./mvnw 启动项目。

  3. 启动成功,输出 URL 信息

  4. 访问 Registry center

    • 服务器 IP 地址:云服务器公网 IP、虚拟机静态 IP

    • 默认端口号:8761

    • 默认账号密码:admin

  5. 挂起当前会话

    # 快捷键 Ctrl+A+D
    screen -d jh-registry
    

按照以上方式,分别启动 myMicro 和 myGateway

4.3.2、访问

服务启动后即可访问,如下所示

标签:jdl,false,JDL,应用程序,生成,jhipster,JH2
来源: https://www.cnblogs.com/secretmrj/p/16262785.html