步骤1:基本配置
基本信息中配置的内容会呈现在代码中,需用户根据实际情况进行勾选配置。
- 在服务列表中,单击新增一个服务中已创建服务后的“编辑”。
- 在基本配置中,按需进行设置。
图1 基本配置
- 基本配置:若本地已有配置好的服务元数据,可通过单击“导入元数据”,直接导入。
- 微服务名称:自动关联新增一个服务中创建的服务名称。
- Group ID:服务所属项目中的组ID,会自动关联新建项目中Group的值。在Maven项目中用作工程组的标识,Group ID在一个组织或项目中通常是唯一的。
- Package:设置生成代码的顶层包名,会自动关联新建项目中Package的值。
- Artifact ID:在Maven项目中用作工程的标识,通常是工程的名称。
- 版本:在Maven项目中用作工程的版本号。
- 框架:选择微服务使用的开发框架,支持DEVSPORE(JDK 8 + SpringBoot 2)和DEVSPORE(JDK 17 + SpringBoot 3)。
- DEVSPORE(JDK 8 + SpringBoot 2):生成JDK8+SpringBoot2的代码框架。
- DEVSPORE(JDK 17 + SpringBoot 3):生成JDK17+SpringBoot3的代码框架。
- 在详细配置中,配置服务的详细信息。
图2 详细配置
- 服务类型:当前仅支持创建原子服务。原子服务是指对外提供业务对象管理API,有独立数据存储(一般为独立数据库)的服务。原子服务之间可以相互调用。
- 服务组:选择服务所属的分组。如何创建服务组,请参见新建服务组。
- 服务单元化策略:服务在子域内的单元化策略。服务单元化策略必须在一个子域内定义,不能跨子域。
- SINGLE:即单库,无论子域是否进行单元化部署,该服务只在一个单元(一般以region为单元)内部署。
- ROOTED:根服务,包含根业务对象的服务,每个子域最多有一个根服务。
- SHARDING:分片服务,必须按照根服务的根业务对象的维度对数据进行分片,和根服务使用同样的数据单元化策略。只有子域中包含根服务的时候,才允许有分片服务;一个子域可以包含的分片服务数量为0..n。分片服务有两种方式和根服务建立关系:可以通过建立根维度映射表,其它sharding表外键引用它的方式。也可以直接为每个表加一个根维度表id字段。
- API版本:服务的API版本,默认为新增一个服务时配置的版本,如果需要升级API的版本,请参见升级API版本。
- 是否启用扩展拦截:通过引入devspore-horizon插件,用户自定义继承抽象类Approve和添加配置,在请求进入和返回时增强处理。您可调用DevSpore预置的插件,也可以使用自己开发的插件,自定义插件可参考如何自定义devspore-horizon插件。
启用扩展拦截时,自动在pom文件中引入devspore-horizon插件,并在所有service实现类的方法上添加“@Extension”注解。同时在plugin目录下,生成“DefaultRequestPlugin.java”示例文件。
使用插件时,用户需要在配置文件中添加devspore.horizon.processors,即配置自己编写的扩展插件注入到spirng中的名称,多个插件之间使用英文逗号隔开,扩展插件需要继承com.huawei.devspore.horizon.approver.Approve抽象类,并重写其中的doApprove方法。
启用扩展拦截仅专业版及以上套餐支持,如果您需要使用此功能,请升级Astro Pro实例版本。
- 客户端配置。
客户端配置仅专业版及以上套餐支持,如果您需要使用此功能,请升级Astro Pro实例版本。
- 是否生成客户端:是否生成客户端的代码。开启后,会生成服务的客户端代码,如图3。
- 客户端类型:目前仅支持“OPEN_FEIGN”
- 设置完成后,单击“下一步”,进入框架配置页面。