华为云用户手册

  • 购买实例 进入购买Astro企业应用实例页面。 “实例规格”选择“企业版”,其他参数按需进行设置,单击“立即购买”。 图1 选择购买规格 确认订单无误后,单击“去支付”。 以购买企业版一年为例,若为基础版,此处配置费用为“0”。 图2 确认订单 选择支付方式,单击“确认付款”,完成支付。 订单支付成功后,单击“返回Astro企业应用控制台”。 在Astro企业应用控制台中,可以查看到Astro企业应用的实例状态。当“实例状态”变为“运行中”时,说明实例已安装完成,可以正常使用Astro企业应用。 图3 查看实例状态
  • 9、x-type 作用: 给dto的字段设置指定的类型。 标签值类型: String 使用位置: components.schemas.model.prorperties.field.x-type(设置在dto的指定字段上时,改变该字段的类型为指定类型) 使用示例: definitions: Contain: type: "object" x-generic: T x-extends: Parent properties: name: type: "string" description: "" example: data: type: "string" x-type: T # 通过x-type指定data的类型为T, 此处是将T当为一个字符串设置上,如果设置为一个对象时,需要使用x-imports手动导入相应的包 xml: name: "Contain" namespace: "com.huaweicloud.icsl.app.dto" --------------- 使用效果: 使用前: public class Contain implements Serializable { private static final long serialVersionUID = 1L; @JsonProperty("name") private String name = null; @JsonProperty("data") private String data = null; } 使用后: public class Contain implements Serializable { private static final long serialVersionUID = 1L; @JsonProperty("name") private String name = null; @JsonProperty("data") private T data = null; }
  • 16、x-enum-class-name 作用 用于标识查询参数对应的枚举类。 标签值类型 String 使用位置 paths.path.operation.parameters.fields.x-enum-value-type 对应的是swagger中已定义的枚举对象名字。 使用示例 Paths: /v1/orders/{order_id}/order-details: get: tags: - "Order" summary: "查询OrderDetail" description: "Returns OrderDetail" operationId: "ListOrderDetails" x-is-registered: 'N' x-support-sdk: 'N' x-mybatis-paging: true consumes: - "application/json" produces: - "application/json" parameters: - name: "status" in: "query" description: "status" required: false type: "string" x-enum-class-name: "OrderStatus" #此标签只在查询参数中使用 -------- 使用效果: 使用前: public class ListOrderDetailsQo implements Serializable { private static final long serialVersionUID = 1L; @JsonProperty("status") private Object status = null; ------------------- } 使用后: public class ListOrderDetailsQo implements Serializable { private static final long serialVersionUID = 1L; @JsonProperty("status") private OrderStatus status = null; ------------------- }
  • 17、x-entity-package 作用: 用于在swagger中指定实体类dto生成的包名。 标签值类型: String 使用位置: x-entity-package(定义在swagger的最外层) 使用示例: swagger: "2.0" info: description: "" version: "v1" title: "testSwagger" termsOfService: "http://www.coarl.org/service.html" host: "git.huawei.com" basePath: "/testswagger" x-entity-package: "customdto" ------------ 使用效果: 使用前: #dto对象生成目录 xxx.xx.xx.dto 使用后: #dto对象生成目录 xxx.xx.xx.customdto
  • 4、x-annotations 作用: 添加指定的注解。 该标签用于在api的参数或者dto指定属性上添加注解。 标签值类型: List 使用位置: paths.path.operation.parameters.x-annotations(定义在api中的参数上时,只在此参数上生成对应的注解) definitions.model.properties.property.x-annotations(定义在dto的字段上时,只在此字段上生成对应的注解) 使用示例: Card: type: "object" properties: id: type: "string" description: "id" example: "id" balance: type: "integer" format: "int64" description: "balance" example: 123 address: type: "string" description: "address" example: "address" x-annotations: - "@InjectMocks" # 此处在address属性上添加了一个 @InjectMocks 注解 x-imports: - "org.mockito.InjectMocks;" # x-annotations实际是把 @InjectMocks当做字符串添加到了address上,所以需要自己通过x-imports导入相应的类 creator: type: "string" description: "creator" example: "creator" create_time: type: "string" format: "date-time" default: "CURRENT_TIMESTAMP" description: "create time" example: "2020-02-27 15:00:08" modify_time: type: "string" format: "date-time" default: "CURRENT_TIMESTAMP" description: "modified time" example: "2020-02-27 15:00:08" description: type: "string" description: "description info" example: "description" xml: name: "card" namespace: "com.huaweicloud.icsl.model" 使用效果: 使用前: public class Card implements Serializable { private static final long serialVersionUID = 1L; ----- @JsonProperty("address") private String address = null; ---- } 使用后: public class Card implements Serializable { private static final long serialVersionUID = 1L; ------- @JsonProperty("address") @InjectMocks // 通过 x-annotations 引入的注解 private String address = null; -------- }
  • 21、x-pom-gav 作用 自定义标签-pom坐标引入。 标签值类型 List 使用位置 x-pom-gav components.schemas.model.x-pom-gav components.schemas.model.properties.property.x-pom-gav paths.path.operation.x-pom-gav paths.path.operation.parameters.name.x-pom-gav x-pom-gav在Swagger文件中的位置可以是类级别、方法级别、参数级别,groupId、artifactId、version按照顺序用:连接,全局有一个地方定义即可,不需要重复定义。 使用示例 swagger: "2.0" info: description: "" version: "v1" title: "testSwagger" termsOfService: "http://www.coarl.org/service.html" host: "git.huawei.com" basePath: "/testswagger" x-entity-package: "customdto" x-interface-name-style: SERVICE_IMPL_AND_NO_I_INTERFACE_PREFIX x-user-defined-consumes: true x-pom-gav: # 手动引入hibernate-validator:依赖 - "org.hibernate.validator:hibernate-validator:8.0.1.Final" ------- 使用效果: 使用前: pom中没有org.hibernate.validator:hibernate-validator:8.0.1.Final的依赖 使用后: pom中生成org.hibernate.validator:hibernate-validator:8.0.1.Final的依赖
  • 6、x-controller-annotations 作用: 添加指定的注解。 该标签用于在api实现类上添加指定的注解。 标签值类型: String 使用位置: x-class-annotations(定义在swagger最外层,所有的api实现类上都会添加指定注解) components.schemas.model.x-class-annotations(定义在指定tag下,只会在具体api实现类上添加指定注解) 使用示例: swagger: "2.0" info: description: "" version: "v1" title: "testSwagger" termsOfService: "http://www.coarl.org/service.html" host: "git.huawei.com" basePath: "/testswagger" x-imports: - "org.springframework.context.annotation.Profile;" # 使用的时候结尾一定要带上 ; x-controller-annotations: # 此处添加的注解,在所有生成的api实现类上都会添加,需要使用x-imports手动导入相应的包 - '@Profile("test")' 使用效果: 使用前: public class CardApiController implements CardApi { ------ } 使用后: @Profile("test") // 通过x-controller-annotations引入的注解 public class CardApiController implements CardApi { ------ }
  • 5、x-class-annotations 作用: 添加指定的注解。 该标签用于在api接口或者dto类上添加指定的注解。 标签值类型: List 使用位置: x-class-annotations(定义在swagger的最外层时,会在所有的api接口上都添加指定的注解) components.schemas.model.x-class-annotations(定义dto对象上时,只在该对象上添加指定的注解) 使用示例: swagger: "2.0" info: description: "" version: "v1" title: "testSwagger" termsOfService: "http://www.coarl.org/service.html" host: "git.huawei.com" basePath: "/testswagger" x-imports: - "org.springframework.stereotype.Controller;" # 使用的时候结尾一定要带上 ; - "org.springframework.transaction.annotation.Transactional;" x-class-annotations: #此处添加的注解,在所有生成的api上都会添加 - "@Controller" # 此处会将 @Controller识别为一个字符串添加到api接口类上,并不会导入相应的包,需要使用 x-imports标签手动导入相应的包 - "@Transactional" # 此处会将 @Transactional识别为一个字符串添加到api接口类上,并不会导入相应的包,需要使用 x-imports标签手动导入相应的包 使用效果: 使用前: package com.huaweicloud.icsl.api; import ------ /** * CARDApi interface */ public interface CARDApi { ----------- } 使用后: package com.huaweicloud.icsl.api; import org.springframework.stereotype.Controller; // 通过x-imports 引入的导包 import org.springframework.transaction.annotation.Transactional; // 通过x-imports 引入的导包 /** * CARDApi interface */ @Controller // 通过x-class-annotations 引入的注解 @Transactional // 通过x-class-annotations 引入的注解 public interface CARDApi { ----------- }
  • 18、x-interface-name-style 作用: 控制自定义接口、实现类命名风格。 标签值类型: enum(DEFAULT,SERVICE_IMPL_AND_NO_I_INTERFACE_PREFIX),配置为DEFAULT时和不配置此参数效果相同。 使用位置: x-interface-name-style 使用示例: swagger: "2.0" info: description: "" version: "v1" title: "testSwagger" termsOfService: "http://www.coarl.org/service.html" host: "git.huawei.com" basePath: "/testswagger" x-entity-package: "customdto" x-interface-name-style: SERVICE_IMPL_AND_NO_I_INTERFACE_PREFIX ------------ 使用效果: 使用前: service类的命名为 I+tag驼峰+ service eg: IOrderService 使用后: service类的命名为 tag驼峰+ service eg: OrderService
  • 2、x-default-empty 作用: 只支持get请求,指定String类型参数生成默认值为""。 需要配合metadata元数据中generatorPolicy的queryParamLimit使用,当将请求参数转换为对象后此标签才会生效。 标签值类型: boolean 使用位置: paths.path.operation.parameters.name.x-default-empty 当该标签置为true时,原定义默认值的default标签失效,该标签只可用于定义String参数为""。 使用示例: paths: /v1/cards: get: # 该接口设置了查询参数转换为对象的功能,最终所有的参数都会自动定义到一个对象中 tags: - "CARD" summary: "查询所有Card" description: "Returns all Card" operationId: "ListCards" x-is-registered: 'N' x-support-sdk: 'N' x-mybatis-paging: true x-query-param-body: CardQo parameters: - name: "creator" in: "query" description: "creator" required: false type: "string" x-default-empty: true # 使用 x-default-empty 指定creator的默认值为 "" ----- 使用效果: 使用前: public class ListCardsQo implements Serializable { private static final long serialVersionUID = 1L; @JsonProperty("creator") private String creator = null; // 此处生成的creator默认值为 null ------ } 使用后: public class CardQo implements Serializable { // 该示例使用了x-query-param-body指定了对象名为CardQo,所以和使用前的的示例中类名不一样 private static final long serialVersionUID = 1L; @JsonProperty("creator") private String creator = ""; //此处生成的creator的默认值为 "" ------- }
  • 3、x-imports 作用: 自主定义类中需要添加的 import 引用。 标签值类型: List 使用位置: x-imports(当定义在swagger的最外层时,所有的类中都会引入import) components.schemas.model.properties.property.x-imports(当定义在dto的字段中时,只会在该dto类中引入import) definitions.model.x-imports(当定义在dto上时,只会在该dto类中引入import) paths.path.operation.x-imports(当定义在api中时,只会在该api中引入import) 在生成代码的时候,最终会有格式化的一个步骤,类上的无用import会被消除。 使用示例: swagger: "2.0" info: description: "" version: "v1" title: "testSwagger" termsOfService: "http://www.coarl.org/service.html" host: "git.huawei.com" basePath: "/testswagger" x-imports: - "org.springframework.stereotype.Controller;" # 使用的时候结尾一定要带上 ; - "org.springframework.transaction.annotation.Transactional;" 使用效果: 使用前:api类中不生成org.springframework.stereotype.Controller; 和org.springframework.transaction.annotation.Transactional;引用。 使用后:api类中生成如下引用。 import org.springframework.stereotype.Controller; # 通过x-import引入 import org.springframework.transaction.annotation.Transactional; # 通过x-import引入 public interface CARDApi { ------- );
  • DDL文件设计 根据业务模型,完成DDL文件设计,DDL标签使用可参考DDL标签使用指南。 示例: CREATE TABLE `t_value_object` ( `workspace1_id` varchar(200) NOT NULL COMMENT 'relation("t_workspace1","id","AGGREGATE")', `number` int NOT NULL COMMENT 'valueObject', `new_name3` varchar(200) NOT NULL COMMENT 'searchable', `new_name4` varchar(200) NOT NULL COMMENT 'searchable', CONSTRAINT pk_t_value_object PRIMARY KEY (`workspace1_id`, `number`) ) COMMENT = 'primaryKeyType("NONE")'; CREATE TABLE `renameWorkspace` ( `key1` varchar(200) NOT NULL COMMENT 'alias("newName2")', `key2` varchar(200) NOT NULL COMMENT 'alias("newName3")', `renameField` boolean NOT NULL COMMENT 'alias("newName4")', `new_name5` int NOT NULL, `new_name6` bigint(40) NOT NULL, `new_name7` decimal(40, 0) NOT NULL, `new_name8` float(40, 0) NOT NULL, `new_name9` double(40, 0) NOT NULL, `new_name10` date NOT NULL, `new_name11` timestamp NOT NULL, CONSTRAINT pk_renameworkspace PRIMARY KEY (`key1`, `key2`) ) COMMENT = 'alias("renameWeaweae");primaryKeyType("COMPOSITE")'; CREATE TABLE `t_workspace6` ( `parent_id` bigint(40) NULL COMMENT 'parent_id;relation("t_workspace6","id","RECURSIVE")', `id` bigint(40) NOT NULL, `new_name4` varchar(200) NOT NULL, `new_name5` varchar(200) NOT NULL, PRIMARY KEY (`id`) ) COMMENT = 'primaryKeyType("SNOWFLAKE")';
  • 字段允许搜索标签 在comment中使用函数形式表示字段允许搜索,标识作用于表中需设置为searchable的字段。 参数说明: 标签名称:searchable。 数据类型:boolean类型。 默认值:false。 标签示例: CREATE TABLE `t_workspace9` ( `id` varchar(40) NOT NULL COMMENT 'id', `name` varchar(200) NOT NULL COMMENT 'name;searchable', PRIMARY KEY (`id`) ) COMMENT = 'workspace9'; 与其他标签同时使用";"分隔使用示例: CREATE TABLE `t_object1` ( `workspace9_id` varchar(0) NOT NULL COMMENT 'relation("t_workspace9","id","AGGREGATE");searchable', `number` int NOT NULL COMMENT 'valueObject' ) COMMENT = 'object1'; 标签使用效果:
  • 字段数据类型标签 在comment中使用函数形式标识字段的数据类型,标识作用于表中字段,可使标识字段数据类型在模型中修改为标识类型。 参数说明: 标签名称:type。 数据类型:string类型。 默认值:空(原字段数据库类型对应的java类型)。 标签示例: CREATE TABLE `t_workspace9` ( `id` varchar(40) NOT NULL COMMENT 'id', `name` varchar(200) NOT NULL COMMENT 'type("integer")', PRIMARY KEY (`id`) ) COMMENT = 't_workspace9'; 标签使用效果:
  • 主键标签 在comment中使用函数形式表示主键类型。可选值为:UUID、SNOWFLAKE、AUTO_INCREASE_INT32、AUTO_INCREASE_INT64、USER_DEFINE。 参数说明: 标签名称:valueObject。 数据类型:boolean类型。 默认值:false。 标签规则 UUID时主键应是字符类型。 AUTO_INCREASE_INT32的主键应是int类型。 AUTO_INCREASE_INT64的主键应是bigint类型。 SNOWFLAKE时主键应是数值(int/long)类型。 非USER_DEFINE的主键时,主键名不是“id”。 USER_DEFINE的主键时,未指定主键字段。 同时非USER_DEFINE时,可以不指定主键(即ddl中可以没有primary key的声明语句)。 当未指定标签时,指定主键情况下主键类型默认为USER_DEFINE; 未指定主键默认为UUID。 标签示例: CREATE TABLE `t_workspace4` ( `id` varchar(200) NOT NULL, `new_name3` varchar(200) NOT NULL, `new_name4` varchar(200) NOT NULL, PRIMARY KEY (`id`) ) COMMENT = 'primaryKeyType("UUID")'; 标签使用效果:
  • 值对象标签 在comment中使用函数形式表示Value Object类型BO,标识作用于值对象表的number字段。 参数说明: 标签名称:valueObject。 数据类型:boolean类型。 默认值:false。 标签示例: CREATE TABLE `t_workspace9` ( `id` varchar(40) NOT NULL COMMENT 'id', `name` varchar(200) NOT NULL COMMENT 'name', PRIMARY KEY (`id`) ) COMMENT = 't_workspace9'; CREATE TABLE `t_object1` ( `workspace9_id` varchar(0) NOT NULL COMMENT 'relation("t_workspace9","id","AGGREGATE")', `number` int NOT NULL COMMENT 'valueObject' ) COMMENT = 'object1'; 标签使用效果:
  • 别名标签 在comment中使用函数形式标识字段或表的别名,标识作用于表中字段或表名。 参数说明: 标签名称:alias。 数据类型:string类型。 默认值:空(原字段名或表名)。 标签示例: CREATE TABLE `t_workspace9` ( `id` varchar(40) NOT NULL COMMENT 'id', `name` varchar(200) NOT NULL COMMENT 'alias("rename");searchable', PRIMARY KEY (`id`) ) COMMENT = 'alias("workspace10")'; 标签使用效果: 表名别名效果: 字段别名效果:
  • 关系标签 一对多关系 在MANY一方的关系字段上添加标注:COMMENT 'relation("关联表名","关联表字段","ONE2MANY")'。 DDL示例: CREATE TABLE `t_workspace2` ( `id` varchar(200) NOT NULL, `new_name3` varchar(200) NOT NULL, `new_name4` varchar(200) NOT NULL, PRIMARY KEY (`id`) ) COMMENT = 'primaryKeyType("UUID")'; CREATE TABLE `t_workspace3` ( `id` varchar(200) NOT NULL, `new_name4` varchar(200) NOT NULL, `workspace2_id` varchar(200) NOT NULL COMMENT 'searchable;relation("t_workspace2","id","ONE2MANY")', PRIMARY KEY (`id`) ) COMMENT = 'primaryKeyType("UUID")'; 标签使用效果: 多对多关系 在多对多关系表的关系字段上添加标注:COMMENT = 'relation("关联表名","关联表字段","MANY2MANY")'。 此处关系的首要方关联字段写在关系的次要方关联字段前面,即workspace4_id字段在workspace5_id前面。示例中首要方:t_workspace4,次要方:t_workspace5。 DDL示例: CREATE TABLE `t_workspace4` ( `id` varchar(200) NOT NULL, `new_name3` varchar(200) NOT NULL, `new_name4` varchar(200) NOT NULL, PRIMARY KEY (`id`) ) COMMENT = 'primaryKeyType("UUID")'; CREATE TABLE `t_workspace5` ( `id` varchar(200) NOT NULL, `new_name3` varchar(200) NOT NULL, `new_name4` varchar(200) NOT NULL, `new_name5` varchar(200) NOT NULL, PRIMARY KEY (`id`) ) COMMENT = 'primaryKeyType("UUID")'; CREATE TABLE `t_rel_workspace4_workspace5` ( `new_name3` varchar(200) NOT NULL, `new_name4` varchar(200) NOT NULL, `workspace4_id` varchar(200) NOT NULL COMMENT 'relation("t_workspace4","id","MANY2MANY")', `workspace5_id` varchar(200) NOT NULL COMMENT 'relation("t_workspace5","id","MANY2MANY")', CONSTRAINT pk_t_rel_workspace4_workspace5 PRIMARY KEY (`workspace4_id`, `workspace5_id`) ) COMMENT = 'relWorkspace4Workspace5'; 标签使用效果: 聚合关系 在聚合关系的主表的关系字段上添加标注:COMMENT 'relation("关联表名","关联表字段","AGGREGATE")'。 DDL示例: CREATE TABLE `t_spec_group` ( `id` varchar(40) NOT NULL COMMENT 'id', `city_id` varchar(40) NOT NULL COMMENT 'relation("t_city","id","AGGREGATE")', `name` varchar(200) NULL, PRIMARY KEY (`id`) ) COMMENT = 'specGroup'; CREATE TABLE `t_city` ( `id` varchar(40) NOT NULL COMMENT 'id', `city` varchar(200) NULL, `dateType` date NOT NULL COMMENT 'dateType', PRIMARY KEY (`id`) ) COMMENT = 'city'; 标签使用效果: 树递归关系 在树递归关系BO表中的"parent_id"上添加标注:COMMENT 'relation("关联表名","关联表字段","RECURSIVE")'。 DDL示例: CREATE TABLE `t_workspace6` ( `parent_id` bigint(40) NULL COMMENT 'parent_id;relation("t_workspace6","id","RECURSIVE")', `id` bigint(40) NOT NULL, `new_name4` varchar(200) NOT NULL, `new_name5` varchar(200) NOT NULL, PRIMARY KEY (`id`) ) COMMENT = 'primaryKeyType("SNOWFLAKE")'; 标签使用效果:
  • 注意事项 SwaggerCodeGen会将n、FALSE、 No和off转换成boolean类型的false,将Y、true、Yes和ON转换成boolean类型的true,所以在java代码编译时会报错。因此“是否生成客户端”开关打开时,表中定义上述字段时可使用“别名标签”给字段设置别名。 关系表标识:含有"_rel_"的表名,大小写不敏感。例如:t_rel_workspace4_workspace5。
  • 模板文件介绍 所有的自定义组件都在src/components文件夹里面内开发,模板内提供了两个预置模板componentA和componentB,可直接在模板基础上进行开发,如需更多可复制添加。 图1 默认组件 components都包含三个文件,一个index.js,一个*.vue文件和一个componentBundle.json文件,其中index.js和componentBundle.json这两个文件名字不可更改。 图2 components文件夹 componentBundle.json:用于定义一组组件的元数据,包括组件的配置、依赖关系、版本信息等。 index.js:作为应用程序的入口文件,即程序启动时首先执行的脚本。 *.vue:用于定义Vue组件,包括模板(HTML)、脚本(JavaScript)和样式( CSS )。
  • 组件协议结构规范 组件协议结构规范用于描述组件的关键信息和配置项,对应组件的components字段。 表1 组件协议结构规范 字段 说明 类型 name 组件名称,以“i18n”形式配置。 Object component 组件名。 String icon 组件图标。 String screenshot 快照。 String description 组件介绍描述。 String npm 组件NPM包信息,会根据此描述引入npm源组件。 Object npm.package npm包名。 - npm.exportName 需要从npm包中import的名称。 - npm.version package的版本。 - npm.destructuring 是否以结构方式import。 - npm.script ESModule格式的JS文件CDN地址。 String npm.css 样式文件CDN地址。 String group 组件分组。 String schema 组件元数据(定义属性、事件等)。 Object configure 组件的属性信息。 Object version 组件版本。 Object
  • 选中组件 添加了组件之后,您可以选中组件,对组件进行修改、删除、移动等操作。 以下为选中组件的相关方法: 从画布中直接单击组件选中组件。 图6 直接单击选中组件 在左侧大纲树插件中,以树的形式展示了当前页面中所有的组件,单击树节点选中画布中的组件。 图7 单击树节点选中组件 底部节点树展示了从根节点到当前选中组件的层级节点,单击底部的节点树的某一个节点,选中父组件。 图8 展示当前选中组件的层级节点 图9 单击节点树的父点,选中父组件
  • 步骤三:新建一个页面 单击“页面管理”的新增页面按钮。 设置页面基本属性。 选择页面类型:可选“静态页面”或“公共页面”。 页面名称:只允许包含英文字母,且以大写开头驼峰格式,如DemoPage。 选择文件夹:下拉框中选择文件夹名称。 路由:输入路由信息,只允许包含英文字母、数字、下划线、中划线和正斜杠组成, 且以英文字母开头。 图4 创建页面 单击“保存”。 在弹框中输入历史备份信息,单击“确定”。
  • 左侧插件栏 :物料插件,提供设计所需组件,拖拽组件至画布中进行页面设计,具体操作请参考使用组件。 :大纲树插件,可查看页面大纲树。 :页面管理工具插件,可以新增文件夹,可以新增文件夹,以及对页面或者文件的增删改操作。 :数据源管理插件,可用于来配合画布上的组件渲染,具体操作请参考使用数据源。 :资源管理插件,将一些可复用的公共函数编写到工具类中,也可以将一些npm包引用到工具类中,供后续调用,具体操作请参考使用工具类方法。 :国际化插件,可添加国际化词条,实现中英文切换。 :JS方法插件,您可以通过使用JS面板编写自己的代码,从而实现较为复杂的业务场景。 :状态管理插件,可添加页面变量和添加全局变量,供页面及应用使用。 单击插件按钮后会向右展开对应插件设置面板。例如,单击,将展开物料资产包。 图2 展开物料资产包
  • 顶部工具栏 设计器顶部的工具栏从左到右包括: :撤销上一步的操作。 :恢复上次撤销的内容。 :保存当前页面数据。 :发布页面模板。 :清空当前画布内容。 :刷新当前页面数据,如果页面未保存,页面配置将恢复到上一次保存的状态。 :单击后可展开左侧插件栏的设置插件,设置当前页面属性。 :单击可进行画布中英文切换。 :多终端工具切换,可切换画布宽度。 :页面预览,打开新Tab预览当前页面。 下载源码:将当前页面数据转换并下载代码到本地。
  • 代码结构说明 代码结构说明中的“{biz}”,为在AstroPro的业务设计中定义的对象,如BO、Abstract BO等。 com.astropro |-- api # API层代码,定义向外部服务暴露的接口(必填项) {biz}Api.java # swagger注解 {biz}Controller.java # 输入参数非业务校验 |-- app # 应用层(必填项) |-- service # 应用服务层(必填项) I{biz}AppService.java # 应用服务接口定义(禁止改动) |-- impl {biz}Service.java # 返回值转换为dto |-- dto # 数据传输对象,用于接口层返回(必填项) {biz}Dto.java # 与BO一一对应 {customDto}.java # 自定义dto(禁止改动) |-- converter # bean转换器,用于BO和DTO转换 {biz}Converter.java # 与BO是一一对应关系 |-- consumer # 消费者(可选项) I{biz}Consumer.java {biz2}Handler.java |-- producer # 生产者(可选项) I{biz}Producer.java |-- scheduler # 定时任务(可选项) |-- domain # 领域层,包含基本的业务和业务聚合(必填项) |-- service I{biz}RepositoryService.java # 领域服务接口定义(devspore生成的持久化服务,禁止修改) I{biz}GatewayService.java # 网关服务接口 |-- impl {biz}DomainService.java # 自定义的领域服务实现 |-- entity # 该聚合下所有的实体、值对象 {biz}.java |-- model # qo、nested、cartesian |-- enums # 枚举类 |-- event # 领域事件实体定义 {xxx}Event.java |-- infra # 基础设施层 |-- repository # 数据操作聚合层,包含基类和继承类(必填项) |-- base # 数据操作聚合层基类代码(必填项) {biz}BaseRepository.java {biz}Repository.java # 数据操作聚合层继承类代码,并实现对应的domainService |-- mapper # 数据原子操作层。mapper层目录,包含基本接口和继承接口(必填项) |-- criteria # mybatis查询对象 |-- base # mapper层基本接口代码(必填项) {biz}BaseMapper.java {biz}Mapper.java # mapper层继承接口代码。用户可在此类中覆写基本接口中的方法或者增加自定义的方法 |-- integration # 防腐层,集成第三方服务(跨进程的外部服务),隔离外部系统的影响(可选项) GatewayService.java # 与领域服务层的I{biz}GatewayService.java一一对应 |-- mq # mq的具体实现,如kafka、rocketmq |-- common # 通用包 |-- config # 配置类(必填项) |-- utils # 工具类(必填项) |-- exception # 异常类(必填项) |-- filter # 过滤器(可选项) |-- interceptor
  • 资源目录说明 代码结构说明中的“{biz}”,为在AstroPro的业务设计中定义的对象,如BO、Abstract BO等。 resources |-- mapper # 开源组件mybatis的mapper.xml文件存放目录 |-- base # 该目录下的文件禁止用户改动 {biz}BaseMapper.xml {biz}Mapper.xml # 只在初次代码生成,用户可在此文件中实现自定义的方法 |-- openapi # swagger.yaml存放目录 swagger.yaml # swagger.yaml文件 application.yml # SpringBoot全局配置文件 banner.txt # 应用程序的banner文件 log4j2.xml # log4j2日志配置文件 metadata.json # 元数据配置文件
  • service层资源目录结构 代码结构说明中的“{biz}”,为在AstroPro的业务设计中定义的对象,如BO、Abstract BO等。 resources # 资源目录结构 |-- mapper # 开源组件mybatis的mapper.xml文件存放目录 {biz}CustomMapper.xml # 用户可在此文件中实现自定义的方法 |-- openapi # swagger.yaml存放目录 swagger.yaml # swagger.yaml文件 application.yml # SpringBoot全局配置文件 banner.txt # 应用程序的banner文件 log4j2.xml # log4j2日志配置文件 metadata.json # 元数据配置文件
  • service层代码结构 代码结构说明中的“{biz}”,为在AstroPro的业务设计中定义的对象,如BO、Abstract BO等。 com.astropro |-- service # 承接API直接调用,基本的业务判断逻辑和分发。service层目录,只包含实现层,用户可自定义实现service层逻辑(必填项) {biz}Service.java # service实现代码(必填项) |-- repository # 数据操作聚合层(必填项) {biz}Repository.java # 数据操作聚合层继承类代码。用户可在此类中覆写基类中的方法或者增加自定义的方法 |-- mapper # 数据原子操作层,mapper层目录(必填项) {biz}CustomMapper.java # mapper层用户自定义mapper接口代码,用户可在此类中用户可在此类中实现自定义mapper接口 |-- enums # 枚举类(必填项) |-- config # 配置类(必填项) |-- utils # 工具类(必填项) |-- exception # 异常类(必填项) |-- integration # 集成第三方服务,隔离外部系统的影响,起防腐作用(可选项) |-- event # 事件层(可选项) |-- publish # 发布事件的Package,存放事件发布的工具类与发布的事件对象,屏蔽技术组件对应用业务的侵入 |-- subscribe # 订阅事件的Package,存放listener与消费的事件对象,listener只做数据的监听与数据格式的转换
  • base代码目录结构 代码结构说明中的“{biz}”,为在AstroPro的业务设计中定义的对象,如BO、Abstract BO等。 com.astropro |-- controller # API层代码,定义向外部服务暴露的接口(必填项) {biz}Api.java {biz}Controller.java |-- service # 承接API直接调用,基本的业务判断逻辑和分发。service层目录,包含接口层(必填项) I{biz}Service.java # service接口层代码 |-- repository # 数据操作聚合层(必填项) Abstract{biz}Repository.java # 数据操作聚合层代码。 |-- mapper # 数据原子操作层。mapper层目录,包含基本接口(必填项) {biz}Mapper.java # mapper层接口代码 |-- model # 业务对象层,包含实体类、枚举类、查询对象和mybatis查询条件对象 {biz}.java # 实体类(可选项) {xxx}Enum.java # 枚举类(可选项) {biz}Qo.java # 查询对象(可选项) {biz}Criteria.java # mybatis查询条件对象(可选项) |-- dto # 数据传输对象,do组合对象(可选项) |-- nested # 根据业务对象的关系自动关联生成,嵌套复杂对象(可选项) |-- cartesian # 根据业务对象的关系自动关联生成,正交的笛卡尔积对象(可选项) |-- {customDto}.java # 用户预先定义好的数据传输对象(可选项) |-- utils # 工具类(必填项) |-- resources # 资源目录结构 |-- mapper # 开源组件mybatis的mapper.xml文件存放目录 {biz}Mapper.xml # 该目录下的文件禁止用户改动
共100000条