
# 配置架构模板
#### 使用说明
项目遵循相同的结构和模式时，可以创建架构模板，并使用该模板创建应用，减少设计和实现的时间。
#### 约束与限制
架构模板为Astro Pro企业版功能，如果您需要使用此功能，请[升级Astro Pro实例版本](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0167.html)。
 #### 创建架构模板
1. 参考[登录AstroPro界面](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0004.html)中操作，登录AstroPro界面。
2. 在左侧导航栏中，选择"后端开发平台 \> 资产库 \> 架构模板"。
3. 在顶部项目下拉框中选择对应项目或工作空间，即可设置模板的范围。
   
   - 全局模板为系统预置模板，不可编辑。
   
   - 选择对应项目，则模板范围为指定项目，选择工作空间，则模板范围为工作空间内所有项目。
   
   - 非工作空间管理员仅可创建对应项目模板，具体权限约束可参考[了解AstroPro中角色](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0065.html)。
   
   
   图1选择创建模板的项目   
   ![](https://support.huaweicloud.com/usermanual-astropro/zh-cn_image_0000002032547065.png)
   
   
4. 在架构模板页面，单击"新建架构模板"。
5. 配置模板信息后，单击"下一步"。 
   - 模板名称：输入模板名称，名称仅允许以英文字母开头，包含英文字母和数字，一般采用驼峰格式或"-"连接，长度最低为两位。
   
   - 模板类型：默认为架构模板，暂不支持修改。
   
   - 模板范围：根据[3]选择的项目，确认模板范围。
     图2配置模板基本信息   
     ![](https://support.huaweicloud.com/usermanual-astropro/zh-cn_image_0000001966017970.png) 
   
   
   
   
6. 设置模板基本配置后，单击"下一步"。 
   - 下拉框中选择模板框架。
   
   - 选择是否开启客户端。
     图3设置模板基本配置   
     ![](https://support.huaweicloud.com/usermanual-astropro/zh-cn_image_0000001966018214.png) 
   
   
   
   
7. 选择模板的参考架构。 
   图4选择参考架构   
   ![](https://support.huaweicloud.com/usermanual-astropro/zh-cn_image_0000002002460085.png)
   
   
8. 数据库设置。 
   图5设置数据库   
   ![](https://support.huaweicloud.com/usermanual-astropro/zh-cn_image_0000002002381705.png)
   - 数据库：选择数据库的类型，支持MySQL、PostgreSQL和GaussDB。
   
   - 分库策略：选择数据的分片算法。参考架构选择"数据库分库+分布式缓存"时，需要设置。
     - MOD：直接使用分片数取模，余数为分片编号（从0开始编号）。适用整数类型的字段。
     
     - HASH_MOD：先使用哈希算法，再使用MOD算法。适用字符串类型的字段。
     
     - RANGE：按照固定的字段值范围映射到分片编号。适用整数、时间类型的字段。
     
     - CUSTOM：用户插件实现特定的SPI。适用所有类型的字段。
     
     - INTERVAL：按照时间间隔分表，分片列必须为时间类型或时间格式的字符串。
      
   
   - 分库数量：设置分库的数量。参考架构选择"数据库分库+分布式缓存"时，需要设置。
   
   - 分库字段：设置分库的字段名，可单击"添加字段"，按需进行添加。分库对象默认使用根对象主键分库，根对象默认使用自身主键分库。参考架构选择"数据库分库+分布式缓存"时，需要设置。
   
   - 主键策略：设置主键的生成方法。数据库中的主键，用于唯一标识一条记录。
     - UUID：使用mybatis interceptor生成的字符串UUID，分表采用hash，逻辑表数量难扩容。
     
     - 雪花算法：使用ShardingJDBC雪花算法，id以时间戳开头，分表采用hash，逻辑表数量难扩容。
     
     - 自增主键(32位)/自增主键(64位)：使用整数range分表，需自己开发插件完成分表算法，逻辑表数量比较容易扩容。
     
     - 用户自定义：使用用户自定义的方法。
      
   
   - 数据源：设置数据库的SDK类型。
     - DevSpore：DevSpore数据源。
     
     - Spring：原生Spring数据源。
      
   
   - ORM框架：ORM（Object Relational Mapping）框架采用元数据来描述对象与关系映射的细节，元数据一般采用XML格式，并且存放在专门的对象一映射文件中。
     - MyBatis：MyBatis是一款持久化架构，支持自定义SQL、存储过程和高级映射。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis可以使用简单的XML或注解用于配置和原始映射，将接口和Java的POJOs（Plain Ordinary Java Objects，普通的Java对象）映射成数据库中的记录。
     
     - MyBatis/MyBatisPlus：MyBatis-Plus是一个MyBatis的增强工具，为MyBatis提供了一些高效、实用、开箱即用的特性，使用MyBatis-Plus可以有效地节省开发时间。
      
    
   
   
9. 安全认证设置。 
   图6安全认证设置   
   ![](https://support.huaweicloud.com/usermanual-astropro/zh-cn_image_0000001955029820.png)
   - 身份认证
     - 不启用：不启用安全认证机制。
     
     - 华为云OneAccess：使用OneAccess作为安全认证机制。华为云OneAccess是一个贯穿企业全业务流程的身份安全管理服务。更多关于OneAccess的介绍，请参见[应用身份管理服务OneAccess](https://support.huaweicloud.com/oneaccess/index.html)。
      
   
   - 密码加密：配置文件中密码加解密方式。
     - 不启用：不内置加解密方式。
     
     - 开源Jasypt：使用开源进行加解密。
      
   
   - 参数校验：参数校验使用的类型。
     - 不启用：不对参数进行Jasypt校验。
     
     - Hibernate：使用Hibernate注解参数校验方式。
      
    
   
   
10. 云服务设置。 
    图7云服务设置   
    ![](https://support.huaweicloud.com/usermanual-astropro/zh-cn_image_0000001968799984.png)
    - 注册发现/配置中心
      - 不启用：不对接配置管理服务。
      
      - CSE：使用微服务引擎服务CSE作为配置管理服务。CSE是微服务应用的云中间件，为用户提供了注册发现、服务治理、配置管理等高性能和高韧性的企业级云服务能力，可无缝兼容Spring Cloud、ServiceComb等开源生态，用户也可以结合其他云服务，快速构建云原生微服务体系，实现微服务应用的快速开发和高可用运维。更多关于CSE的介绍，请参见[微服务引擎CSE](https://support.huaweicloud.com/cse/index.html)。
      
      - NACOS：使用NACOS作为配置管理服务。NACOS提供了一组简单易用的特性集，帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
       
    
    - 调用链
      - 不启用：不启用调用链。
      
      - 华为云APM：使用应用性能管理服务APM作为调用链。APM您的云上引用健康管理专家，可帮助运维人员快速发现应用的性能瓶颈，以及故障根源的快速定位，为用户体验保驾护航。更多关于APM的介绍，请参见[应用性能管理APM](https://support.huaweicloud.com/apm/index.html)。
       
    
    - 服务监控
      - 不启用：不对接服务监控组件。
      
      - 华为云AOM：使用应用运维管理服务AOM作为服务监控组件。应用运维管理AOM是云上应用的一站式立体化运维管理平台，实时监控您的应用及相关云资源，分析应用健康状态，提供灵活丰富的数据可视化功能，帮助您及时发现故障，全面掌握应用、资源及业务的实时运行状况。更多关于AOM的介绍，请参见[应用运维管理AOM](https://support.huaweicloud.com/aom/index.html)。
       
     
    
    
11. 设置完成后，单击"下一步"，进入生成策略页面。
12. API设置。 
    图8API设置   
    ![](https://support.huaweicloud.com/usermanual-astropro/zh-cn_image_0000001955029824.png)
    - Json序列化
      - 小驼峰：序列化后的json属性名，采用驼峰格式。
      
      - 下划线：序列化后的json属性名，采用下划线连接单词。
       
    
    - 标准响应体：返回的响应体是否使用标准样式。
      ```
      {
          "code": 200,
          "msg": "success",
          "data": {
              "name": "zhangsan",
              "birthday": "1990-01-01",
              "other_properties": "..."
          }
      }
      ```
      
    
    - Web框架模型：生成基于spring-webmvc的API层。
    
    - 关闭API中根对象前缀：设置为"是"时，sharding bo的API前面不需要添加root bo的路径。
    
    - 查询参数阈值：设置查询参数阈值，值为"0"时不生效。当查询参数大于该阈值时，将多个查询参数转换为对象。
     
    
    
13. 设置代码风格。 
    图9设置代码风格   
    ![](https://support.huaweicloud.com/usermanual-astropro/zh-cn_image_0000001990829001.png)
    - 配置文件格式：配置spring boot properties文件格式。
      - yaml ：配置文件使用yaml格式。
      
      - properties ：配置文件使用properties格式。
       
    
    - Lombok插件：是否为DO、DTO或QO定义类自动生成Lombok注解。
    
    - 工程目录：设置生成代码的工程目录样式。
      - 单Module：工程目录结构只有一个模块。
      
      - base/service：工程目录结构包含base和service两个模块。
      
      - DDD：和单Module一样，工程目录结构只有一个模块。
      
      
      图10工程目录不同类型设置效果   
      ![](https://support.huaweicloud.com/usermanual-astropro/zh-cn_image_0000001990669165.png) 
    
    - module添加服务名前缀：配置为"是"时，模块名称前会添加服务名前缀。
      图11开启前后效果   
      ![](https://support.huaweicloud.com/usermanual-astropro/zh-cn_image_0000001955029832.png) 
     
    
    
14. 设置部署信息。 
    图12设置部署信息   
    ![](https://support.huaweicloud.com/usermanual-astropro/zh-cn_image_0000001990829013.png)
    - 服务部署脚本
      对接CCE部署和ServiceStage部署时，生成的代码中会包含如下内容：
      - 根目录中会增加" .cam"文件夹，包含"cam.yml"和"variables.yml"文件。
      
      - service模块的"application.yam"文件中，会增加"server.tomcat"配置参数。
      
      - dockerfile脚本会做相应的修改。
        
    
    - 服务打包方式
      - jar：打成jar包。jar通常包含一些Java类文件、相关元数据和资源，在声明了Main_class后可使用java命令运行。
      
      - war：打成war包。war是Java Web应用程序的标准打包格式，war是一个Web模块，包括WEB-INF目录，可直接运行于Web容器中。
       
     
    
    
15. 设置完成后，单击"创建"，完成架构模板创建。
 
#### 编辑架构模板
1. 参考[登录AstroPro界面](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0004.html)中操作，登录AstroPro界面。
2. 在左侧导航栏中，选择"后端开发平台 \> 资产库 \> 架构模板"。
3. 在架构模板列表中选中待操作的模板，单击"操作"的列"编辑"。
4. 在架构模板编辑页面中，根据需求重新设置模板信息、基本配置、架构配置及生成策略，具体参数说明可参考[创建架构模板]。
5. 配置完成后，单击"保存"，架构模板编辑完成。
 
#### 单个删除架构模板
1. 参考[登录AstroPro界面](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0004.html)中操作，登录AstroPro界面。
2. 在左侧导航栏中，选择"后端开发平台 \> 资产库 \> 架构模板"。
3. 在架构模板列表中选中待删除的模板，单击"操作"的列"删除"。
4. 在弹框中单击"确认"，完成架构模板单个删除。 
   删除后无法恢复，请谨慎操作。
   
   
 
#### 批量删除架构模板
1. 参考[登录AstroPro界面](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0004.html)中操作，登录AstroPro界面。
2. 在左侧导航栏中，选择"后端开发平台 \> 资产库 \> 架构模板"。
3. 在架构模板列表中勾选待删除的模板，单击"批量删除"。
4. 在弹框中单击"确认"，完成架构模板批量删除。 
   删除后无法恢复，请谨慎操作。
   
   
 
