检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
对象详解 BO Abstract BO Value Object 对象间关系 父主题: 后端应用管理
对象间关系 一对多 多对多 聚合 树递归 继承 父主题: 对象详解
请求方法:HTTP请求方法(也称为操作或动作),用于告诉服务您正在请求什么类型的操作。 get:请求服务器返回指定资源。 put:请求服务器更新指定资源。 post:请求服务器新增资源或执行特殊操作。 delete:请求服务器删除指定资源。
聚合 什么是聚合 聚合关系本质上也是一种一对多关系,唯一不同的是聚合中次要方必须依赖首要方,任何对于次要方的操作首先要经过首要方才能继续往下操作。 图1 聚合和一对多的差异 关系属性设置 在业务设计页面,拖入两个BO业务对象(命名为Bo1、Bo2)单击“relations”中的“聚合
继承 什么是继承 在继承关系中,业务对象可以继承抽象对象中的所有字段。例如,业务对象Role和抽象对象Abstract,抽象对象中存在name和value两个字段。建立继承关系后,抽象对象Abstract中的字段会被业务对象Role完全继承,如图2。 图1 抽象对象Abstract
树递归 什么是树递归 树递归和一对多、多对多和聚合之间的差异在于一对多、多对多和聚合是两个不同的业务对象间产生关联,而树递归的双方为相同的对象类型,存储在同一张表中,递归关系的双方可以抽象成父子关系。树递归中,一个对象最多存在一个父对象,类似于数据结构中的树结构。创建树递归后,在数据库中会增加一个
BO:业务对象,业务对象映射到服务中的一个实体,对应数据库中的一张表。 Abstract BO:抽象对象,不能实例化,没有对应的数据库表,需要和业务对象有个继承的操作。例如,业务对象A继承一个抽象对象B,则B中的字段都会被A继承过来。
多对多 什么是多对多 多对多关系中,首要方和次要方都不会发生任何的变化。唯一的变化是在多对多连线上,会默认添加两个字段用来分别指向关系的两侧。也就是说,一对多和聚合关系是通过在次要方添加主键和外键来表示的,而多对多关系是通过单独创建的关系表来表示的。 和一对多关系一样,删除多对多关系只代表两个对象之间的特定关系的结束
一对多 什么是一对多 一对多关系中,次要方可以不依赖于首要方,可以单独存在。删除一对多关系只代表两个对象之间的特定关系的结束,不会影响任何一个对象的生命周期。 图1 一对多和聚合的差异 创建一对多关系后,首要方不会做任何的改动,次要方的字段中会自动增加首要方的id,即primaryId
根对象(ROOTED):分库的根对象,每个服务只能有一个。支持的主键类型有UUID和雪花算法,其中雪花算法支持逻辑数据库水平扩展。
如何为对象添加枚举字段 使用说明 AstroPro的对象中仅提供了常用的字段类型(简单类型、数组类型),对于某些特殊的字段类型,如枚举类型(例如性别,男、女),此时可以通过添加枚举字段来实现。 图1 查看字段类型 操作步骤 在业务设计页面,单击“枚举字段”。 在编辑枚举字段页面,单击
如何为对象添加固定字段 使用说明 在AstroPro中,每个业务对象默认只有一个“id”固定字段。除此之外,您还可以为其添加creator、createTime、modifyTime和description四个固定字段。 操作步骤 在业务设计页面,选中某个业务对象。 单击BO属性操作中的
图5 设置对象间关系 设置完成后,单击“下一步”,进行服务依赖设置。 父主题: 编辑服务
Value Object 功能介绍 Value Object是一个值对象,不能单独存在,需要和业务对象建立聚合的关系。 图1 和业务对象建立聚合关系 聚合后,Value Object中的主键和BO中的主键,共同构成了一个联合的主键。 图2 BO中的字段 图3 联合主键 属性说明 在业务设计页面
Abstract BO 功能介绍 Abstract BO是一个抽象对象,不能单独存在,没有数据库表,需要和业务对象建立继承的关系。建立继承关系后,业务对象会继承抽象对象中的字段。例如,抽象对象Abstract和业务对象Role存在继承关系,在抽象对象Abstract中,新建一个name
用户可在此类中覆写基本接口中的方法或者增加自定义的方法 |-- integration # 防腐层,集成第三方服务(跨进程的外部服务),隔离外部系统的影响(可选项) GatewayService.java
com.astropro |-- api # API层代码,定义向外部服务暴露的接口(必填项) {biz}Api.java {biz}Controller.java |-- service
步骤5:服务依赖 通常情况下,一个应用不是一个单独的服务,可能由多个服务共同组成。这些服务之间可能存在一些跨服务的调用,此时就需要通过添加依赖服务,把这些服务的客户端集成过来。添加依赖服务前,请确保依赖服务的“是否生成客户端”按钮已启用。
创建项目时,默认会创建一个和项目同名的服务组,所有新建服务默认在此分组下(本示例使用默认服务组)。服务组用于对项目中的服务进行分组,一般一个分组对应一个研发团队。 图5 新增服务 设置服务的基本信息。 图6 新建Order服务 服务名称:设置待添加服务的名称。
详细配置 图4 详细配置 服务类型:当前仅支持创建原子服务。原子服务是指对外提供业务对象管理API,有独立数据存储(一般为独立数据库)的服务。原子服务之间可以相互调用。 服务组:选择服务所属的分组。如何创建服务组,请参见新建服务组。 服务单元化策略:服务在子域内的单元化策略。