代码生成是根据当前应用关联的限界上下文模型生成对应的接口定义、接口实现、领域服务类、聚合根、值对象、实体类、数据对象类、数据ORM以及常用的操作,包括增、删、改、查等相关操作代码。本文介绍如何生成代码。
如果关联了限界上下文,则根据限界上下文的模型生成代码。
如果没有关联限界上下文,则生成空的脚手架代码。
已发布的应用不支持代码生成功能。
操作步骤
登录BizWorks,在选择平台下拉列表中选中微服务开发平台。
单击页面右上角图标或其文本框区域,在下拉列表中单击目标项目名称后,单击应用页签。在应用列表页面单击目标中心应用名称。
在目标中心应用左侧导航栏中,选择 。
在代码生成页面,单击代码生成。
在代码生成面板,查看代码内容和版本,选择合适的代码分支,并设置相关参数。
只有当您开启模型联动配套功能开关后,在代码生成面板您才能看到代码内容和版本相关内容和配置项。更多关于模型关联的信息,请参见管理模型。
说明本文以代码分支提交至代码库的获取方式为例说明如何配置相关配置项。
对于根据限界上下文应用服务方法重置接口定义选项:
如果您选中该选项,平台将根据关联的限界上下文应用服务方法,按照平台代码生成规则重新生成并覆盖现有的接口定义,接口定义重置后您可在应用接口管理中查看。
如果您不勾选该选项,则应用接口定义信息不会更新,后续您可通过代码扫描的方式上报应用接口信息。
如果在创建应用时,您有做脚手架配置,则在代码生成面板的配置与创建应用时候配置是一致的。
代码分支与生成逻辑如下:
代码分支
生成逻辑
新分支
直接全量生成新代码。
基于旧分支checkout新分支
需要在已有代码的基础上重新生成代码:
模型中存在但代码中不存在,直接生成新的代码。
模型中存在且代码中也存在,但代码中已经做过修改,则用模型覆盖。
代码模型中存在,代码中也存在,并且两者相同的,不做任何处理。
模型中不存在但代码中存在的,不做任何处理。
说明不显示生成代码结构部分,只能根据原有分支的结构生成代码。
生成到已有分支
代码分支与参数说明如下:
新分支
参数
说明
新建分支
填写新分支的名称,默认格式为:
develop_yyyyMMdd_HHmmss
。限制如下:由大小写字母、数字、中文或字符组成。
字符数不超过100位。
GroupId
填写工程GroupId的名称。限制如下:
由小写字母、数字和小数点组成。
需以小写字母开头,且需以小写字母或数字结尾。
字符数不超过64位。
完成GroupId首次填写后,您可以单击点击修改,在编辑中心应用面板维护GroupId。具体操作,请参见设置代码项目基本信息。
ArtifactId
默认为该应用的编码。您可以修改此编码,限制如下:
由小写字母、数字和短横线(-)组成。
需以小写字母开头,且需以小写字母或数字结尾。
字符数不超过64位。
完成ArtifactId首次填写后,您可以单击点击修改,在编辑中心应用面板维护ArtifactId。具体操作,请参见设置代码项目基本信息。
Version
默认值为
1.0.0
。您可以修改此描述,限制如下:由大小写字母、数字、小数点和短横线(-)组成。
需以字母或数字开头和结尾。
字符数不超过64位。
包路径
默认格式为
groupid.artifactid
。您可以修改此路径描述,限制如下:由小写字母、数字和小数点组成。
需以小写字母开头,且需以小写字母或数字结尾。
字符数不能超过128位。
脚手架模板
支持自定义脚手架模板的包路径。具体操作,请参见自定义脚手架模板的包路径。
组件依赖
您可以按需选择Spring Boot版本和目标组件。支持全部展开或全部折叠两种方式查看组件详情。
基于旧分支checkout新分支
参数
说明
基础分支
在基础分支列表中,选择所需的旧分支。
新建分支
填写新分支的名称,默认格式为:
develop_yyyyMMdd_HHmmss
。新分支名称的限制如下:由英文、数字、中文或字符组成。
字符数不超过100位。
GroupId
项目信息自动带出基础分支所对应的项目信息。
您可以单击点击修改,在编辑中心应用面板维护GroupId。具体操作,请参见设置代码项目基本信息。
ArtifactId
项目信息自动带出基础分支所对应的项目信息。
您可以单击点击修改,在编辑中心应用面板维护ArtifactId。具体操作,请参见设置代码项目基本信息。
Version
不可修改。项目信息自动带出基础分支所对应的项目信息。
包路径
脚手架模板
支持自定义脚手架模板的包路径。具体操作,请参见自定义脚手架模板的包路径。
组件依赖
您可以按需选择Spring Boot版本和目标组件。支持全部展开或全部折叠两种方式查看组件详情。
生成到已有分支
参数
说明
基础分支
在基础分支列表中,选择所需的旧分支。
GroupId
项目信息自动带出基础分支所对应的项目信息。
您可以单击点击修改,在编辑中心应用面板维护GroupId。具体操作,请参见设置代码项目基本信息。
ArtifactId
项目信息自动带出基础分支所对应的项目信息。
您可以单击点击修改,在编辑中心应用面板维护ArtifactId。具体操作,请参见设置代码项目基本信息。
Version
不可修改。项目信息自动带出基础分支所对应的项目信息。
包路径
脚手架模板
支持自定义脚手架模板的包路径。具体操作,请参见自定义脚手架模板的包路径。
组件依赖
您可以按需选择Spring Boot版本和目标组件。支持全部展开或全部折叠两种方式查看组件详情。
说明如果您选择添加技术组件生成代码,则系统会在脚手架默认添加对应依赖、配置、示例代码、使用说明。如果涉及外部服务(例如:Nacos、RocketMQ等),则不会自动部署一套外部服务,主要提供脚手架支持。
执行结果
代码生成后,您可以进入对应的代码仓库,查看生成的分支,包含app、entry、domain、infrastructure、client和starter7个基础模块(module)。每个module的职责说明如下:
module | 职责 | 描述 |
app | 元数据表达转化。 | 限界上下文应用服务方法出入参的元数据表达转化。同时,业务方也可以在这里写应用实现。 |
entry | 核心业务入口。 | 业务入口,当应用通过Spring Cloud实现,则 |
domain | 领域实现层,实现核心业务逻辑。 | domain层主要负责编写业务逻辑。通过业务建模后,业务逻辑通过 |
infrastructure | 基础设施层:负责技术实现,包括访问DB、Cache、RPC、MQ等。 | domain会实现业务逻辑,而业务逻辑中涉及到技术实现的部分(保存、RPC请求、MQ发送消息、缓存等)都通过 |
client | 域服务接口定义。 | 外部应用集成的SDK,便于能力调用。在SDK中定义限界上下文应用服务接口定义、接口入参和返回值DTO、接口返回错误码定义、业务自定义异常定义等。 |
starter | 应用启动。 | 独立应用启动的包,方便启动方式插拔变更。 |
如果代码生成失败,分支状态显示生成失败,单击查看原因,查看具体失败原因。