# Astro企业应用 AstroPro > 快速构建企业核心业务应用 ## 产品介绍 - [什么是Astro企业应用](https://support.huaweicloud.com/productdesc-astropro/astropro_03_0001.md): Astro企业应用(Astro Pro,简称AstroPro)是Astro面向企业数字化转型提供的元数据驱动的企业应用一站式构建平台。为企业SaaS应用提供端到端开发管理平台,沉淀通用能力,加快应用构建,差异场景灵活扩展,助力业务创新。AstroPro通过元数据多租,高低代码协同等能力,快速构建企业核心业务应用,提高多层级/多分支企业的应 - [产品优势](https://support.huaweicloud.com/productdesc-astropro/astropro_03_0002.md): AstroPro提供了安全、高效、灵活的元数据多租编排引擎,实现了差异需求的快速定制。使用AstroPro构建企业应用具备如下优势。领域驱动设计,创建业务应用,用户通过业务建模,可生成高可用、高可靠、以及安全稳定的企业级IT应用框架。支持领域驱动设计的建模,以及复杂关系建模,生成架构规范的代码框架,降低开发门槛。安全可靠,内置稳定的安全防 - [应用场景](https://support.huaweicloud.com/productdesc-astropro/astropro_03_0003.md): 应用场景应用场景复杂,缺乏软件架构设计能力,以及微服务开发能力。开发能力不足,缺乏编码规范和安全编码意识。对云上数据库、中间件和存储等服务不了解,缺乏云上服务对接能力。价值根据用户的诉求,快速帮助用户生成满足DDD领域驱动设计的框架代码,并且内置稳定的安全防护能力和编码规范、API规范、数据规范,极大提升了用户开发效率和开发代码质量。优势 - [产品功能](https://support.huaweicloud.com/productdesc-astropro/astropro_03_0009.md): AstroPro服务支持的主要功能如下。关于各功能支持的地域(Region)信息,可通过控制台查询详情。项目管理是AstroPro业务系统中生成微服务的入口,由项目、服务组、服务和服务依赖组成。用户在设计项目架构时,可按照研发团队等维度对项目进行划分服务组,每个服务组会开发若干个服务,服务之间也会存在相互调用的服务依赖。关于项目管理的更多 - [产品规格差异](https://support.huaweicloud.com/productdesc-astropro/astropro_03_0004.md): Astro企业应用当前提供了基础版、专业版和企业版三种规格套餐,供您选择。关于规格的详细介绍,请参见表1。基础版:满足个人及创业团队的基础需求,用户能够低门槛入门使用该产品。专业版/企业版:提供了更多的应用及实体功能,可满足中大型企业的复杂管理需求。Astro企业应用套餐包含的功能,请参见表2。三个套餐功能存在差异,请参考表3选择适合您的 - [权限管理](https://support.huaweicloud.com/productdesc-astropro/astropro_03_0005.md): 如果您需要对华为云上购买的AstroPro资源,为企业中的员工设置不同的访问权限,以达到不同员工之间的权限隔离,您可以使用统一身份认证服务(Identity and Access Management,简称IAM)进行精细的权限管理。该服务提供用户身份认证、权限分配、访问控制等功能,可以帮助您安全地控制华为云资源的访问。如果华为账号已经能 - [约束与限制](https://support.huaweicloud.com/productdesc-astropro/astropro_03_0006.md): AstroPro当前支持的区域,如表1所示。 - [基本概念](https://support.huaweicloud.com/productdesc-astropro/astropro_03_0007.md): 业务建模是以软件模型方式描述项目或业务所涉及的对象及对象的属性、行为和对象之间彼此的关系。业务建模强调以业务领域分层的方式来理解、设计和构架业务应用系统。工作空间是为了方便用户全面管理资源而提供的通用空间。工作空间之间的资源是相互隔离的,默认情况下,每个租户仅能看到自己工作空间下的资源。每个租户只能拥有一个工作空间。项目管理是AstroP ## 计费说明 - [计费概述](https://support.huaweicloud.com/price-astropro/astropro_price_0000.md): 通过阅读本文,您可以快速了解Astro企业应用 AstroPro的计费模式、计费项、续费、费用账单等主要计费信息。计费模式AstroPro当前提供了基础版和专业版两种规格套餐供您使用。两种规格均为包年/包月购买方式,包年/包月是一种预付费模式,即先付费再使用,按照订单的购买周期进行结算。关于计费模式的详细介绍,请参见计费模式。AstroP - [计费模式](https://support.huaweicloud.com/price-astropro/astropro_price_0001.md): AstroPro仅提供了包年/包月的计费模式。包年/包月是一种先付费再使用的计费模式,适用于对资源需求稳定且希望降低成本的用户。通过选择包年/包月的计费模式,您可以预先购买AstroPro套餐并获得一定程度的价格优惠(以实际价格为准)。包年/包月计费模式需要用户预先支付一定时长的费用,适用于长期、稳定的业务需求。使用包年/包月计费模式具备 - [计费项](https://support.huaweicloud.com/price-astropro/astropro_price_0002.md): 根据您选择的版本规格进行计费。购买专业版套餐后,计费项还包括扩容包。AstroPro计费项计费项计费项说明适用的计费模式计费公式套餐规格AstroPro提供了两种不同的规格套餐,请根据自身需求,购买相应的规格套餐。基础版:满足个人及创业团队的基础需求,用户能够低门槛入门使用该产品。专业版/企业版:提供了更多的应用及实体功能,可满足中大型企 - [变更套餐版本](https://support.huaweicloud.com/price-astropro/astropro_price_0003.md): 在购买AstroPro后,如果发现当前规格套餐无法满足业务需求,您可以变更套餐规格。当需要变更到高规格套餐时,需补齐版本差价,剩余服务周期按照剩余天数(不含闰年的2.29号)/365 进行计算(变更当天不算) ,续费时按照变更后的版本进行续费。升级版本费用= 升级后版本价格 * 剩余周期 - 未升级版本价格 * 剩余周期剩余周期计算:按照 - [续费概述](https://support.huaweicloud.com/price-astropro/astropro_price_0005.md): 包年/包月的AstroPro到期后,会影响AstroPro功能的正常运行。如果您想继续使用,需要在指定的时间内为其续费,否则建模功能可能将会受限。在到期前续费成功,AstroPro的运行不受影响。例如。购买AstroPro专业版套餐后,若您有订购扩容包,执行续费操作时,需要支付的费用为专业版套餐费用和扩容包费用的总和。AstroPro续费 - [手动续费](https://support.huaweicloud.com/price-astropro/astropro_price_0006.md): AstroPro套餐从购买到被自动删除前,您可以随时在AstroPro控制台或费用中心为其续费,以延长使用时间。可在“手动续费项”、“自动续费项”、“到期转按需项”或“到期不续费项”页签查询全部待续费资源,对资源进行手动续费的操作。所有需手动续费的资源都可归置到“手动续费项”页签,具体操作请参见如何恢复为手动续费。 - [自动续费](https://support.huaweicloud.com/price-astropro/astropro_price_0007.md): 自动续费可以减少手动续费的管理成本,避免因忘记手动续费而导致AstroPro无法使用。自动续费的规则如下所述:以AstroPro的到期日计算第一次自动续费日期和计费周期。AstroPro自动续费周期,以您选择的套餐版本时长为准。AstroPro到期前均可开通自动续费,到期前7日凌晨3:00首次尝试自动续费,如果扣款失败,每天凌晨3:00尝 - [费用账单](https://support.huaweicloud.com/price-astropro/astropro_price_0008.md): 您可以在“费用中心 > 账单管理”中,查看与AstroPro相关的流水和明细账单,以便了解您的消费情况。包年/包月计费模式的套餐完成支付后,会实时上报一条账单到计费系统进行结算。 - [欠费说明](https://support.huaweicloud.com/price-astropro/astropro_price_0009.md): 用户在使用AstroPro时,账户的可用额度小于待结算的账单,即被判定为账户欠费。AstroPro当前仅支持包年/包月购买,对于包年/包月的AstroPro,用户已预先支付了版本费用,因此在华为账户出现欠费的情况下,已有AstroPro套餐仍可用。但仍需注意已购买的AstroPro套餐的生命周期,按时进行续费,保证AstroPro的正常使 - [停止计费](https://support.huaweicloud.com/price-astropro/astropro_price_0010.md): 对于包年/包月计费模式的AstroPro套餐,用户在购买时会一次性付费,服务将在到期后自动停止使用。如果在计费周期内不再使用包年/包月AstroPro套餐,可以执行退订操作,系统将根据资源是否属于五天无理由退订、是否使用代金券和折扣券等条件返还一定金额到您的账户。如果已开启“自动续费”功能,为避免继续产生费用,请在自动续费扣款日(默认为到 ## 快速入门 - [入门准备工作](https://support.huaweicloud.com/qs-astropro/astropro_02_0000.md): 如果您已有一个华为账号,请跳到下一个任务。如果您还没有华为账号,请参考以下步骤创建。执行本入门中操作,只需购买一个AstroPro基础版实例。基础版实例当前为免费试用,所以不需要为您的账户充值。在使用AstroPro前,您需要购买一个AstroPro实例。AstroPro实例是一个独立的资源空间,所有的操作都是在实例内进行,不同实例间的资 - [订单系统服务开发示例](https://support.huaweicloud.com/qs-astropro/astropro_02_0001.md): 在AstroPro中,用户通过业务建模,可生成高可用、高可靠、以及安全稳定的企业级IT应用框架。本入门通过创建一个简单的订单系统,帮助您快速上手AstroPro。本入门为创建一个简单的订单系统,订单系统中包括用户(User)、订单(Order)和订单详情(OrderDetail)三个业务对象,且三个对象之间存在聚合关系,即用户存在时,订单 - [登录页面设计开发示例](https://support.huaweicloud.com/qs-astropro/astropro_02_0002.md): 应用可以由一个或多个页面组成一个完整的业务系统。本入门为创建一个简单的登录页面,帮助您快速上手AstroPro前端应用开发。登录页面中包括图片、文本、输入框和按钮四个基础组件,且用到Box布局容器组件,便于整体排版布局。在AstroPro中,构建一个上述登录页面的流程,如图图1所示。已将页面设计所需要的图片上传到已创建的OBS桶中备用,并 ## 用户指南 - [入门必读](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0001.md): Astro企业应用(AstroPro,简称AstroPro)通过元数据多租、高低代码协同等能力,快速构建企业核心业务应用,提高多层级/多分支企业的应用构建效率。不过,要熟练使用AstroPro,还需要进行一些基础和深入的学习。在此为您总结了用户咨询的高频问题和搭建经验,并制定了一套完整的学习计划,希望对您的使用有所引导及帮助。通过Astr - [购买基础版实例](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0070.md): 在使用AstroPro前,您需要购买一个AstroPro实例。AstroPro实例是一个独立的资源空间,所有的操作都是在实例内进行,不同实例间的资源相互隔离。基础版实例当前为免费使用,仅能满足个人及创业团队的基础需求。基础版和专业版实例支持的特性差异,请参见产品规格差异。为了便于您更好地了解AstroPro,本指南中操作及截图均以专业版/ - [购买专业版实例](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0003.md): 在使用AstroPro前,您需要购买一个AstroPro实例。AstroPro实例是一个独立的资源空间,所有的操作都是在实例内进行,不同实例间的资源相互隔离。相对于基础版实例,专业版实例提供了更多的应用及实体功能,可满足中大型企业的复杂管理需求。除此之外,购买专业版实例时或购买实例后,支持对资源进行扩容。专业版和基础版实例支持的特性差异, - [购买企业版实例](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0150.md): 在使用AstroPro前,您需要购买一个AstroPro实例。AstroPro实例是一个独立的资源空间,所有的操作都是在实例内进行,不同实例间的资源相互隔离。相对于基础版/专业版实例,企业版实例提供了更多的应用及实体功能,可满足中大型企业的复杂管理需求。基础版、专业版和企业版实例支持的特性差异,请参见产品规格差异。除此之外,购买企业版实例 - [升级实例版本](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0167.md): Astro企业应用当前提供了基础版、专业版和企业版三种规格套餐。不同套餐支持的特性差异,请参见产品规格差异。如果您购买的实例无法满足您当前管理需求,则可升级实例版本。当前仅支持从低规格套餐升级到高规格套餐,不支持降级。规格变更后,不支持回退。若您购买的是基础版实例,可直接升级到专业版或企业版。若您购买的是专业版实例,仅支持升级到企业版。选 - [登录AstroPro界面](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0004.md): 已参考购买基础版实例、购买专业版实例或购买企业版实例中操作,购买AstroPro实例。首次进入首页时,请勾选AstroPro隐私协议及服务声明,如图2所示。勾选隐私协议及服务声明AstroPro界面 - [了解构建流程](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0006.md): 在AstroPro中,用户通过业务建模,可生成高可用、高可靠、以及安全稳定的企业级IT应用框架。业务建模是指通过业务设计,将实际业务涉及的对象和行为转换为元数据中的对象、对象关系、服务依赖等构成的模型,通过模型生成服务,实现业务需求。使用AstroPro创建企业核心应用的流程,如图1所示。创建项目项目是使用AstroPro核心业务的入口。 - [步骤1:创建项目](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0007.md): 项目是一个功能相对完备的业务系统,通常情况下由一个或多个服务组组成。项目是使用AstroPro核心业务的入口。在AstroPro中会为每个租户提供一个工作空间,您可以在工作空间中新建项目。项目创建后,您可以为其他用户添加项目的访问权限,详情请参见角色管理。首次进入项目时,请按照界面提示,开通工作空间。开通工作空间后,即可在该工作空间内创建 - [(可选)步骤2:创建服务组](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0008.md): 服务组用于对项目中的服务进行分组,一般一个分组对应一个研发团队。创建项目后,默认会创建一个和项目同名的服务组,所有新建服务默认在此分组下。您也可以不使用默认的服务组,直接新建一个服务组。服务组名称:设置新建服务组的名称,只能包含大小写字母、数字、连字符(-)和下划线(_)。描述:输入服务组的描述信息,通常设置为服务组的用途或者功能。 - [步骤3:添加服务](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0009.md): 在AstroPro中,快速添加一个服务,新增服务中的配置均采用默认配置。此处新建服务的操作,相当于为服务搭建了一个框架。服务名称:设置待添加服务的名称,生成的服务代码压缩包和解压后的文件会以此命名。服务名称由英文字母、数字或-组成,且必须以字母开头,一般采用驼峰格式,长度最低为两位。代码压缩包名称服务类型:当前仅支持创建原子服务。原子服务 - [步骤4:编辑服务](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0010.md): 在AstroPro中,用户通过业务建模,可生成高可用、高可靠及安全稳定的企业级IT应用框架。步骤3:添加服务中的操作,相当于为服务搭建了一个框架,如果需要实现某些特定的功能,还需要您根据自身业务需求进行业务模型配置。注意:购买AstroPro专业版实例时,才会显示是否生成客户端和是否启用扩展拦截这两个配置项。服务配置基本配置、框架配置和生 - [步骤5:生成服务代码](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0011.md): 根据配置的业务模型生成该服务的基本代码。代码生成后,会提供一个压缩包,供您使用。关于压缩包中代码的详细介绍,请参见服务开发框架详解。系统开始创建服务,并生成该服务的基本代码。代码生成后,界面会提供一个压缩包,可直接下载使用。压缩包格式为服务名称+唯一ID。开始创建微服务打开生成的服务代码包,在README.md文件中可查看代码目录结构的说 - [后端开发视频指导](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0152.md): 本视频通过创建一个简单的订单系统,帮助您快速上手AstroPro后端开发。应用可以由一个或多个页面组成一个完整的业务系统。本入门为创建一个简单的登录页面,帮助您快速上手AstroPro前端应用开发。登录页面中包括图片、文本、输入框和按钮四个基础组件,且用到Box布局容器组件,便于整体排版布局。在AstroPro中,构建一个上述登录页面的流 - [新建项目](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0022.md): 项目是一个功能相对完备的业务系统,通常情况下由一个或多个服务组组成。项目是使用AstroPro核心业务的入口。在AstroPro中会为每个租户提供一个工作空间,您可以在工作空间中新建项目。首次进入项目时,请先开通工作空间。项目名称:新增项目的名称,只能包含大小写字母、数字、连字符(-)和下划线(_)。描述:设置项目的描述信息,通常设置为项 - [编辑项目](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0023.md): 项目创建后,支持再次编辑项目的基本信息。创建项目时会自动创建一个和项目同名的服务组,修改项目名称时,已创建的服务组名称不会随之改动。项目名称:新增项目的名称,只能包含大小写字母、数字、连字符(-)和下划线(_)。描述:设置项目的描述信息,通常设置为项目的用途或者功能。版权信息:自定义代码的版权信息,请以//开头或者以/*开头并以*/结尾。 - [删除项目](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0024.md): 删除项目前,请确保已删除项目中的服务组。如何删除服务组,请参见删除服务组。项目删除后不可恢复,请谨慎操作。项目删除后不可恢复,请谨慎操作。 - [了解AstroPro中角色](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0065.md): AstroPro中的角色包括工作空间级角色和项目级角色两种,您可以通过为不同的用户赋予不同的角色,来控制用户对AstroPro的操作权限。一个用户在AstroPro中只能拥有一种角色。账号登录AstroPro后会自动开通工作空间,每个账号只能开通一个工作空间,开通工作空间的账号默认为此空间的工作空间管理员。工作空间管理员对本工作空间下的所 - [为用户添加工作空间级角色](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0066.md): 工作空间管理员为对本工作空间下的所有资源具有增删改查的权限,可以为本账号下用户分配项目下的角色。只有具备工作空间管理员权限的用户,才能为其他用户添加工作空间级角色。待添加的IAM用户已创建(如IAM用户1)。如何创建IAM用户,请参见创建IAM用户。IAM用户(如IAM用户1)必须已添加到用户组admin或group。加入用户组后,用户才 - [为用户添加项目级角色](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0067.md): AstroPro为每个项目预置了项目管理员、架构师和开发者三种类型的角色。项目管理员可以增删改査项目下的所有资源。可以为项目下的所有角色分配用户(仅限于同账号下的用户,如图1中的IAM用户1、IAM用户2)。华为账号与IAM用户架构师可以新建服务。可以删除本人创建的服务,不能删除其他人创建的服务。可以对项目下的所有服务进行编辑。开发者可以 - [新建服务组](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0027.md): 服务组用于对项目中的服务进行分组,一般一个分组对应一个研发团队。创建项目时,会自动创建一个和项目同名的服务组,所有新建服务默认在此分组下。您也可以不使用默认的服务组,直接新建一个服务组。已参考新建项目中操作,创建项目。服务组名称:设置新建服务组的名称,只能包含大小写字母、数字、连字符(-)和下划线(_)。描述:输入服务组的描述信息,通常设 - [编辑服务组](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0028.md): 服务组创建后,支持再次修改服务组的名称和描述。 - [删除服务组](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0029.md): 服务组不再使用时,可以删除已创建的服务组。删除服务组前,请确保服务组中的服务已删除。如何删除服务,请参见删除服务。服务组删除后不可恢复,请谨慎操作。服务组删除后不可恢复,请谨慎操作。 - [了解服务创建流程](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0013.md): (微)服务是业务概念,即提供某种服务的某个进程。每一个服务都具有自主运行的业务功能,对外开放不受语言限制的API,多个(微)服务组成应用程序。AstroPro是一个企业应用一站式构建平台,对于平台来说不需要过多地区分服务和微服务。在AstroPro中创建一个服务的流程,如图1所示。新增一个服务创建一个空服务,并指定服务的版本。创建服务前, - [新增一个服务](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0014.md): 创建服务前,请确保已创建项目和服务组。如果待添加的服务有依赖其他服务,请先添加依赖的服务。添加被依赖服务时,必须开启是否生成客户端。参考新建项目中操作,完成项目的创建。参考新建服务组中操作,完成服务组的创建。服务名称:设置待添加服务的名称,由英文字母、数字或-组成,且必须以字母开头,一般采用驼峰格式,长度最低为两位。服务类型:当前仅支持创 - [步骤1:基本配置](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0015.md): 基本信息中配置的内容会呈现在代码中,需用户根据实际情况进行勾选配置。基本配置:若本地已有配置好的服务元数据,可通过单击导入元数据,直接导入。微服务名称:自动关联新增一个服务中创建的服务名称。Group ID:服务所属项目中的组ID,会自动关联新建项目中Group的值。在Maven项目中用作工程组的标识,Group ID在一个组织或项目中通 - [步骤2:框架配置](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0016.md): 框架配置和基本配置一样,需要您根据实际情况进行勾选配置,不同的配置会呈现不同的效果。选择模板后,模板配置将自动带入包括框架配置和生成策略。注意:选择参考框架为Astro Pro专业版/企业版功能,如果您需要使用此功能,请升级Astro Pro实例版本。单数据库DB(参考单表查询QPS < 1w):只有一个数据源。读写分离数据库(参考单表查 - [步骤3:生成策略](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0017.md): 生成策略和基本配置、框架配置一样,需要您根据实际情况进行勾选配置,不同的配置会呈现不同的效果。Json序列化小驼峰:序列化后的json属性名,采用驼峰格式。下划线:序列化后的json属性名,采用下划线连接单词。标准响应体:返回的响应体是否使用标准样式。{ "code": 200, "msg": "success", - [步骤4:业务设计](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0018.md): 步骤1:基本配置、步骤2:框架配置和步骤3:生成策略中参数,只需要用户根据自身业务直接在界面进行勾选配置。而业务设计需要用户根据实际的需求,进行业务模型的设计和配置。例如,创建一个简单的订单系统,订单系统中包括用户(User)、订单(Order)和订单详情(OrderDetail)三个业务对象,且三个对象之间存在聚合关系,即用户存在时,订 - [步骤5:服务依赖](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0019.md): 通常情况下,一个应用不是一个单独的服务,可能由多个服务共同组成。这些服务之间可能存在一些跨服务的调用,此时就需要通过添加依赖服务,把这些服务的客户端集成过来。添加依赖服务前,请确保依赖服务的是否生成客户端按钮已启用。完成依赖服务的添加选择SDK类型时,无需配置流控策略。选择“METHOD”类型后,单击“编辑”,可为对象方法配置流控策略。例 - [生成服务代码](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0020.md): 根据配置的业务模型,生成服务的基本代码。代码生成后,会提供一个压缩包,供您使用。关于代码结构的详细介绍,请参见服务开发框架详解。系统开始创建服务,并生成该服务的代码。创建服务并生成代码包 - [查看服务详情](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0031.md): 服务创建后,在服务详情中可查看服务的基本信息、变更记录和所依赖的服务等信息,还可以执行编辑服务、重新生成服务代码和导出元数据等操作。查看服务的基本信息、变更记录和所依赖的服务等信息。在所属服务组模块中,单击编辑,可修改服务组的名称和描述信息。在服务信息模块中,单击编辑,可对服务进行再次编辑。在服务信息模块中,单击重新生成,可再次生成服务的 - [使用模板创建服务](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0135.md): 您可以在“资产库”中自定义模板。当您的业务与模板中的场景相似度较高时,可以通过模板创建新的服务,减少重复开发,提高交付效率。已完成模板创建,具体操作请参考创建架构模板和创建业务对象模板。已新建项目。已创建服务组。服务名称:设置待添加服务的名称,由英文字母、数字或-组成,且必须以字母开头,一般采用驼峰格式,长度最低为两位。服务类型:当前仅支 - [升级API版本](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0032.md): 服务创建后,若需要修改服务的API版本号,可通过新增版本实现。API版本对应服务metadata.json文件中,Service段的apiVersion字段,一般为v1、v2类型的值。查看apiVersion取值在服务列表中,可查看到服务的当前版本已修改为v2。生成服务的metadata.json文件中,Service段的apiVersi - [重新编译服务](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0033.md): 服务创建编译完成后,支持再次编译服务并生成新的代码压缩包。单击操作中的详情,在服务详情页,同样可以对服务进行重新生成。 - [复制服务](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0109.md): AstroPro支持复制服务,减少重复开发,提高交付效率。仅工作空间管理员、项目管理员和架构师,才能执行复制服务的操作。复制成功后,自动进入服务编辑页面,您可以直接使用服务,也可以进行二次开发。选择复制服务 - [删除服务](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0034.md): 当服务不再使用时,可删除已创建的服务。若服务存在依赖服务,请先删除依赖关系,再删除该服务。如何删除服务依赖,请参见删除服务依赖。服务删除后不可恢复,请谨慎操作。当服务有多个版本时,仅会删除对应版本的服务,其他版本的服务不会删除。当服务有多个版本时,仅会删除对应版本的服务,其他版本的服务不会删除。 - [导出元数据](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0035.md): 服务创建后,支持导出服务的元数据。元数据导出后,在创建类似服务时,可通过导入元数据,直接导入使用。 - [DDL标签使用指南](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0141.md): DDL,即数据定义语言(Data Definition Language),是SQL(结构化查询语言)的一部分,用于定义和管理数据库的结构。导入DDL通常指的是将数据库结构定义导入到数据库管理系统中,以便创建或修改数据库的模式。本章节将为您介绍一系列核心DDL标签,帮助简化您的开发流程并提高编辑效率。SwaggerCodeGen会将n、F - [通过导入DDL文件实现业务设计](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0142.md): 本章节指导您如何通过导入DDL文件来实现业务设计。DDL文件不仅定义了数据库的结构,还确保了数据的完整性和一致性,为业务应用提供了坚实的基础。根据业务模型,完成DDL文件设计,DDL标签使用可参考DDL标签使用指南。示例: - [swagger标签使用指南](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0143.md): 本章节为您介绍swagger的通用标签,帮助能更好的编辑swagger文件,完成业务设计。作用:此功能需要结合metadata.json使用,对应到metadata.json中的参数:generatorPolicy.queryParamLimit通过x-query-param-body标签,可以自定义转换的对象的名称。标签值类型:Stri - [通过导入swagger文件实现业务设计](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0144.md): Swagger文件是一个用于描述RESTful API的规范,它可以用来导入设计业务,确保 API 的设计符合业务需求。根据业务模型,完成swagger文件设计,swagger标签使用可参考swagger标签使用指南界面不会显示对应业务架构图,直接单击“下一步”,进入服务依赖环节。导入成功 - [查看服务依赖](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0038.md): 服务依赖创建后,只能查看不支持再次编辑。 - [删除服务依赖](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0039.md): 需要解除服务之间的依赖时,可以通过删除服务依赖来实现。 - [BO](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0041.md): BO(Business Object)是一个业务对象,业务对象映射到服务中的一个实体,对应数据库中的一张表。在业务设计页面,从“business”中,拖拽“BO”对象至画布空白区域。选中对象,在右侧页面设置对象属性,如图1所示。对象名称:设置对象的名称,必须使用大驼峰格式,不允许存在连续的大写字母。中文名:设置BO对象的中文名称。分库逻辑 - [Abstract BO](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0042.md): Abstract BO是一个抽象对象,不能单独存在,没有数据库表,需要和业务对象建立继承的关系。建立继承关系后,业务对象会继承抽象对象中的字段。例如,抽象对象Abstract和业务对象Role存在继承关系,在抽象对象Abstract中,新建一个name字段,该字段会被Role自动继承。在业务设计页面,从“business”中,拖拽“Abs - [Value Object](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0044.md): Value Object是一个值对象,不能单独存在,需要和业务对象建立聚合的关系。聚合后,Value Object中的主键和BO中的主键,共同构成了一个联合的主键。在业务设计页面,从“business”中,拖拽“Value Object”对象至画布空白区域。选中对象,在右侧页面设置对象属性,如图4所示。对象名称:设置对象的名称,必须使用大 - [一对多](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0046.md): 一对多关系中,次要方可以不依赖于首要方,可以单独存在。删除一对多关系只代表两个对象之间的特定关系的结束,不会影响任何一个对象的生命周期。创建一对多关系后,首要方不会做任何的改动,次要方的字段中会自动增加首要方的id,即primaryId,通过这个primaryId去关联首要方的id,从而构建一个一对多的关系。在业务设计页面,拖入两个BO业 - [多对多](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0047.md): 多对多关系中,首要方和次要方都不会发生任何的变化。唯一的变化是在多对多连线上,会默认添加两个字段用来分别指向关系的两侧。也就是说,一对多和聚合关系是通过在次要方添加主键和外键来表示的,而多对多关系是通过单独创建的关系表来表示的。和一对多关系一样,删除多对多关系只代表两个对象之间的特定关系的结束,不会影响任何一个对象的生命周期。在业务设计页 - [聚合](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0048.md): 聚合关系本质上也是一种一对多关系,唯一不同的是聚合中次要方必须依赖首要方,任何对于次要方的操作首先要经过首要方才能继续往下操作。在业务设计页面,拖入两个BO业务对象(命名为Bo1、Bo2)单击“relations”中的“聚合”,为对象建立聚合关系。选中已创建的关系,在右侧页面即可设置关系属性,如图2所示。关系名称:设置聚合关系的名称。关系 - [树递归](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0049.md): 树递归和一对多、多对多和聚合之间的差异在于一对多、多对多和聚合是两个不同的业务对象间产生关联,而树递归的双方为相同的对象类型,存储在同一张表中,递归关系的双方可以抽象成父子关系。树递归中,一个对象最多存在一个父对象,类似于数据结构中的树结构。创建树递归后,在数据库中会增加一个parentId字段,用来指向父节点。在业务设计页面,拖入一个B - [继承](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0050.md): 在继承关系中,业务对象可以继承抽象对象中的所有字段。例如,业务对象Role和抽象对象Abstract,抽象对象中存在name和value两个字段。建立继承关系后,抽象对象Abstract中的字段会被业务对象Role完全继承,如图2。在业务设计页面,拖入一个BO业务对象和一个Abstract BO对象(命名为Role、Abstract),单 - [创建应用](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0115.md): 应用是项目中的一个组成部分,通常包含应用服务(Application Services),这些服务使用领域层中的聚合和实体来执行业务操作。应用管理为Astro Pro企业版功能,如果您需要使用此功能,请升级Astro Pro实例版本。创建成功后,可在应用列表中查看已创建的应用。 - [编辑应用](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0116.md): 应用创建后,支持再次编辑应用的基本信息。应用管理为Astro Pro企业版功能,如果您需要使用此功能,请升级Astro Pro实例版本。 - [同步应用](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0134.md): 应用创建后,支持同步应用信息至服务管理对应的项目中。应用管理为Astro Pro企业版功能,如果您需要使用此功能,请升级Astro Pro实例版本。同步成功后,应用信息将同步到对应项目的服务组中,应用服务信息将同步到对应项目的服务中。 - [删除应用](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0117.md): 当应用不再使用时,可删除应用。删除应用会将应用下的子域一起删除,删除后不可恢复,请谨慎操作。删除应用前请确保应用下无应用服务或应用服务已删除,删除应用服务请参考删除应用服务。应用管理为Astro Pro企业版功能,如果您需要使用此功能,请升级Astro Pro实例版本。 - [创建子域](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0119.md): 子域有助于将复杂的业务领域分解为更小、更易于管理和理解的部分。通过识别和创建子域,组织可以更有效地开发和维护应用,同时确保每个子域都能满足其特定的业务需求。应用管理为Astro Pro企业版功能,如果您需要使用此功能,请升级Astro Pro实例版本。创建成功后,可在子域列表中查看已创建的子域。 - [编辑子域](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0120.md): 子域创建成功后,支持再次编辑。应用管理为Astro Pro企业版功能,如果您需要使用此功能,请升级Astro Pro实例版本。 - [删除子域](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0121.md): 当子域不再使用时,可删除子域,删除后不可恢复,请谨慎操作。应用管理为Astro Pro企业版功能,如果您需要使用此功能,请升级Astro Pro实例版本。 - [创建应用服务](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0123.md): 应用服务是DDD架构中的一个重要组成部分,它们帮助您将业务逻辑与技术实现分离,提高了软件的可维护性和可扩展性。通过使用应用服务,可以更清晰地定义业务操作,并确保它们与领域模型的一致性。应用管理为Astro Pro企业版功能,如果您需要使用此功能,请升级Astro Pro实例版本。应用服务名称:输入应用服务名称,名称仅允许以英文字母开头,包 - [编辑应用服务](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0124.md): 应用服务创建成功后,支持再次编辑。应用管理为Astro Pro企业版功能,如果您需要使用此功能,请升级Astro Pro实例版本。应用服务名称:输入应用服务名称,名称仅允许以英文字母开头,包含英文字母和数字,一般采用驼峰格式或“-”连接,长度最低为两位。描述:输入应用服务补充说明信息。 - [关联服务](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0125.md): 创建子域后,您可以在子域下创建应用服务,也可以关联已创建的服务。本章节为您介绍如何在子域下关联服务。应用管理为Astro Pro企业版功能,如果您需要使用此功能,请升级Astro Pro实例版本。当创建子域是开启单元化配置,则关联Rooted服务。当创建子域是关闭单元化配置,则关联Single服务。关联Single服务关联Rooted服务 - [删除应用服务](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0126.md): 当应用服务不再使用时,可删除应用服务,删除后不可恢复,请谨慎操作。应用管理为Astro Pro企业版功能,如果您需要使用此功能,请升级Astro Pro实例版本。 - [配置服务SLA](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0127.md): 通常情况下,一个应用不是一个单独的服务,可能由多个服务共同组成。这些服务之间可能存在一些跨服务的调用,此时就需要通过添加依赖服务,把这些服务的客户端集成过来。添加服务依赖后,可在服务SLA页面查看相关信息,如服务提供者、服务消费者、依赖方式、依赖强弱等,同时可配置服务调用时延和读取数据不一致最大容忍时间。仅当服务满足以下两个场景时,才可在 - [配置架构模板](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0129.md): 项目遵循相同的结构和模式时,可以创建架构模板,并使用该模板创建应用,减少设计和实现的时间。架构模板为Astro Pro企业版功能,如果您需要使用此功能,请升级Astro Pro实例版本。全局模板为系统预置模板,不可编辑。选择对应项目,则模板范围为指定项目,选择工作空间,则模板范围为工作空间内所有项目。非工作空间管理员仅可创建对应项目模板, - [配置业务对象模板](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0131.md): 创建业务对象模板时,定义了业务流程、数据模型和用户界面的基本结构。您可以使用业务模板创建应用,确保其业务架构与战略目标保持一致,并能够灵活应对变化。本章节以一个简单的继承组件为例,为您介绍创建业务对象模板的流程。业务对象模板为Astro Pro企业版功能,如果您需要使用此功能,请升级Astro Pro实例版本。全局模板为系统预置模板,不可 - [配置自定义字段类型](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0132.md): 标准化的字段类型有时无法完全满足特定应用场景下的个性化需求,因此,需要创建自定义字段类型,从而提供更加精准和高效的数据处理能力。自定义字段类型为Astro Pro专业版/企业版功能,如果您需要使用此功能,请升级Astro Pro实例版本。选择对应项目,则自定义字段类型作用范围为指定项目,选择工作空间,则自定义字段类型作用范围为工作空间内所 - [配置客户端流控策略](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0158.md): 客户端流控策略通常是指在客户端应用中实施的流量控制机制,目的是为了管理客户端与服务器之间的数据传输速率,防止过量的请求对服务器造成压力,同时也保证客户端应用的流畅性,提升用户体验。您可以使用系统预置的流控策略,还可以根据自己的需求自定义创建。本章节为您介绍如何自定义创建及使用客户端流控策略。客户端流控策略为Astro Pro企业版功能,如 - [配置连接器](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0165.md): 通过连接器生成客户端,可以将已有服务的接口抽象和封装为一套标准化的客户端库。这样,其他服务可以通过这些客户端库以统一和简化的方式调用已有服务的接口,无需关心服务的具体实现细节。生成的客户端库可以作为服务间通信的标准工具,减少了重复的代码编写,提高了开发效率和代码的可重用性。配置连接器为Astro Pro企业版功能,如果您需要使用此功能,请 - [执行框架转换](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0166.md): 针对企业中使用Dubbo等其他API框架的存量服务,AstroPro支持将代码统一转换为Spring MVC + OpenAPI的主流框架。转换后的框架将统一化,这有助于简化技术栈,降低技术多样性带来的复杂性,同时提高开发和运维团队的效率。框架转换为Astro Pro专业版/企业版功能,如果您需要使用此功能,请升级Astro Pro实例版 - [如何自定义DTO](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0043.md): 自定义DTO相当于数据传输对象,主要用于自定义API时添加参数或返回体。从“business”中,拖拽“BO”对象至画布空白区域。选中BO对象,在对象属性中,单击自定义API。自定义API单击“新增”,添加一个自定义API。自定义一个API在请求对象或返回对象的参数中,使用自定义DTO。在自定义API中使用自定义DTO - [如何定义脱敏规则](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0068.md): 当对象字段中存在某些敏感信息时,可通过定义脱敏规则来进行脱敏处理。例如,将移动电话的第2位到第5位数字进行脱敏处理。自定义脱敏规则从“business”中,拖拽“BO”对象至画布空白区域。选中BO对象,在对象属性中,单击字段。单击“新增”,添加一个phone字段,并将脱敏规则设置为2中定义的内容。设置后,返回的值将进行脱敏处理,如1*** - [如何为对象添加固定字段](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0053.md): 在AstroPro中,每个业务对象默认只有一个id固定字段。除此之外,您还可以为其添加creator、createTime、modifyTime和description四个固定字段。当前仅添加了一个id默认字段。查看默认字段可查看到对象的默认字段中,除了id还增加了3中添加的固定字段。查看固定字段 - [如何为对象添加枚举字段](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0054.md): AstroPro的对象中仅提供了常用的字段类型(简单类型、数组类型),对于某些特殊的字段类型,如枚举类型(例如性别,男、女),此时可以通过添加枚举字段来实现。 - [整体结构介绍](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0056.md): 在AstroPro中完成服务的开发后,会生成一个服务代码压缩包,命名为“服务名称+唯一ID”。假设服务名称为Servicedemo,则生成的代码压缩包名称,如图1所示。在AstroPro中编辑服务时,可在生成策略 > 代码风格中定义生成代码的工程目录结构,如图2、图3。单Module、DDD:仅会生成src一个模块。base/servic - [单Module](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0057.md): 代码风格 > 工程目录设置为单Module,仅会生成src一个模块,如图1所示。代码结构说明中的{biz},为在AstroPro的业务设计中定义的对象,如BO、Abstract BO等。代码结构说明中的{biz},为在AstroPro的业务设计中定义的对象,如BO、Abstract BO等。 - [base/service](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0058.md): 代码风格 > 工程目录设置为base/service时,会生成base、service和client(如servicedemo-client)三个模块。其中,client为客户端模块,在AstroPro中添加服务时,开启是否生成客户端配置后才会生成。base:AstroPro自动生成出来的,用户不可以修改。但是可以使用AstroPro预置 - [DDD](https://support.huaweicloud.com/usermanual-astropro/astropro_05_0069.md): 代码风格 > 工程目录设置为DDD时,和单Module一样,仅会生成src一个模块,如图1所示。代码结构说明中的{biz},为在AstroPro的业务设计中定义的对象,如BO、Abstract BO等。代码结构说明中的{biz},为在AstroPro的业务设计中定义的对象,如BO、Abstract BO等。 ## 开发指南 - [devspore-horizon介绍](https://support.huaweicloud.com/devg-astropro/astropro_06_0015.md): 扩展拦截功能依赖devspore-horizon组件实现。devspore-horizon是DevSpore开发框架提供的一种插件机制,用户可以在请求被处理前(Entry)和应答发送前(Exit)调用DevSpore预置的插件,也可以使用自己开发的插件,用于实现统一的操作前认证、鉴权,操作后消息发送、缓存更新、审计等功能。DTO:是一种数 - [拦截插件](https://support.huaweicloud.com/devg-astropro/astropro_06_0016.md): devspore-horizon提供了抽象类Processor,用户需要继承这个抽象类,实现抽象方法doProcess(DataEvent event),把认证和鉴权的处理逻辑写到此方法体内。此方法返回值为boolean型。如果认证或者鉴权的逻辑失败,则返回false,责任链后续节点不再执行,整个请求返回不再执行;如果认证或者鉴权成功,则 - [用户自定义拦截插件使用](https://support.huaweicloud.com/devg-astropro/astropro_06_0017.md): Entry插件继承抽象类Processor,实现doProcess接口,可定义多个插件。插件均需注册为bean。import com.huawei.devspore.horizon.DataEvent; import com.huawei.devspore.horizon.exception.PluginException; import - [@Extension介绍](https://support.huaweicloud.com/devg-astropro/astropro_06_0018.md): devspore-horizon是devspore提供的对metaBO(以及对应的RO)操作前鉴权、认证,metaBO变动后消息发送、审计等功能的组件。配置horizon后,generator生成的项目的repository中相关操作上会带有@Extension注解。新增操作:此示例表示可对名为Order的metaBO新增操作做统一的操作 - [开启horizon](https://support.huaweicloud.com/devg-astropro/astropro_06_0019.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [开启自定义认证功能](https://support.huaweicloud.com/devg-astropro/astropro_06_0021.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [用户自定义认证使用](https://support.huaweicloud.com/devg-astropro/astropro_06_0022.md): 引入devspore-auth-starter依赖后,会在SDK内自动注册认证Filter:AuthAuthenticationFilter。调用业务接口时会自动执行已注册的认证Filter,AuthAuthenticationFilter.doFilterInternal中将通过SPI方式先调用TokenParser的实现类(Defau - [开启自定义鉴权功能](https://support.huaweicloud.com/devg-astropro/astropro_06_0024.md): 自定义鉴权功能在微服务架构、API管理、企业内部系统集成等方面发挥着重要作用,它提供了灵活性和可扩展性,以满足不同业务场景下的安全需求。开启自定义鉴权功能前,请确保依赖服务的是否启用扩展拦截按钮已启用。 - [用户自定义鉴权使用](https://support.huaweicloud.com/devg-astropro/astropro_06_0025.md): devspore提供鉴权插件接口,用户只需实现对应鉴权接口即可。继承抽象类Processor,实现doProcess接口,可定义多个插件。插件均需注册为bean。import com.huawei.devspore.plugin.spi.authorization.AuthObject; import com.huawei.devspor - [多租模型概述](https://support.huaweicloud.com/devg-astropro/astropro_06_0035.md): 当用户需要在租户的层面做资源隔离时,可在AstroPro中配置多租模型来达到资源隔离的目的。AstroPro实现多租隔离的方式是通过在需要做资源隔离的对象上额外生成一个tenant_id的字段来存储租户信息,在用户访问接口时,将调用者的租户信息存放在线程变量中(存放方式在用户自定义租户id获取接口中详细说明),通过对比线程中的租户信息和对 - [用户自定义租户id获取接口](https://support.huaweicloud.com/devg-astropro/astropro_06_0036.md): 多租模型的配置主要分为两种:验证方式为Token验证方式为Header下面分别介绍这两种方式的使用方法。设置租户配置:多租模型选择TENANT。租户验证方式选择Token。开启多租模型选中需要进行资源隔离的对象,在属性面板中勾选支持BO多租,如图2所示:设置BO多租系统开始创建服务,最终生成的服务结构如图3所示。此方式下生成的代码会在ut - [自定义API概述](https://support.huaweicloud.com/devg-astropro/astropro_06_0156.md): 在业务设计界面,AstroPro为每个业务对象提供了9种基本的API,分别为新增、删除、更新、查询、批量新增、批量更新、批量查询、批量删除和自定义查询,当以上9种API无法满足用户的需求时,用户还可以通过自定义API来根据自己的业务需要定制化开发API。选中需要添加自定义API的业务对象,在右边的属性栏中选择自定义API,即跳转到自定义A - [自定义API功能介绍](https://support.huaweicloud.com/devg-astropro/astropro_06_0157.md): 自定义API页面如图1所示。选项含义:实例级别:定义API实例的级别,如类型、实例。动作名称:设置API的动作名称。对应到代码中即接口的方法名称。请求方法:HTTP请求方法(也称为操作或动作),用于指定请求的操作类型。get:请求服务器返回指定资源。put:请求服务器更新指定资源。post:请求服务器新增资源或执行特殊操作。delete: - [创建一个上传文件的自定义API](https://support.huaweicloud.com/devg-astropro/astropro_06_0038.md): 创建服务时“Package”设置为“com.huaweicloud.ebizsample”。在业务设计中添加Order对象,选中Order对象添加自定义API,动作名称为upload,请求方式为POST,返回对象为200,代码生成层勾选接口层和应用层,则代码生成时,将在接口层和应用层生成对应API的代码。最终生成的代码效果如图7所示。服务 - [软删除概述](https://support.huaweicloud.com/devg-astropro/astropro_06_0153.md): 软删除(Soft Delete)是相对于硬删除(Hard Delete)而言的,它又可以叫做逻辑删除或者标记删除。这种删除方式并不是真正地从数据库中把记录删除,而是通过特定标记在查询时将此记录过滤掉。虽然数据在应用界面或者API查询时候已不可见,但是仍保留在数据库中。AstroPro实现软删除的原理是在需要进行软删除的对象上额外生成一个( - [软删除使用示例](https://support.huaweicloud.com/devg-astropro/astropro_06_0155.md): 此处需要提前准备示例使用的数据库表,并初始化一些软删除功能示例使用的测试数据,具体的建表语句如下:拖拽一个BO对象到设计区,并修改对象名称为Order。在Order对象中新增一个name字段,String类型,长度200。在业务界面选中Order对象,在右边属性配置中开启软删除策略和恢复软删除策略。在操作下拉框中,勾上全选。系统开始创建服 - [devspore-auth-oneaccess使用概述](https://support.huaweicloud.com/devg-astropro/astropro_06_0042.md): OneAccess是华为云提供的应用身份管理服务,具备集中式的身份管理、认证和授权能力,保证企业用户根据权限访问受信任的云端和本地应用系统,并对异常访问行为进行有效防范。devspore-auth-oneaccess模块用于对OneAccess服务颁发的token进行认证。您需具备以下开发能力:熟悉Java语言,并有Java程序开发经验。 - [使用指南](https://support.huaweicloud.com/devg-astropro/astropro_06_0044.md): 代码中添加spring-boot-starter-huawei-devspore-auth-oneaccess依赖。在配置文件中加入devspore相关配置,如下:arvymzmajv.huaweicloudoneaccess.com为本文示例中使用的域名,实际应用中请换成自己对应的域名。添加完后启动项目即可开启对token的认证。 - [配置说明](https://support.huaweicloud.com/devg-astropro/astropro_06_0045.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [devspore-auth自定义token解析认证](https://support.huaweicloud.com/devg-astropro/astropro_06_0048.md): 需提前安装的工具,包括JDK、Maven、Eclipse和IDEA,配置对应的环境变量,确保本地开发环境可用。引入devspore-auth-starter依赖后,会在SDK内自动注册认证Filter:AuthAuthenticationFilter。调用业务接口时会自动执行已注册的认证Filter,AuthAuthenticationF - [devspore-security使用概述](https://support.huaweicloud.com/devg-astropro/astropro_06_0050.md): devspore-security安全组件内置了明文加密、参数校验等安全功能,相比原有组件自动化程度更高,集成方式更简单。您需具备以下开发能力:熟悉Java语言,并有Java程序开发经验。熟悉Maven。安装的工具包括JDK、Maven、Eclipse和IDEA ,配置对应的环境变量,确保本地开发环境可用。 - [使用指南](https://support.huaweicloud.com/devg-astropro/astropro_06_0052.md): 安装的工具包括JDK、Maven、Eclipse和IDEA ,配置对应的环境变量,确保本地开发环境可用。配置文件里的密钥,建议自行加密存储并实现解密逻辑。输入的密钥,建议按全随机数生成,长度32字节以上。DevSporeSecurity集成Jasypt加解密组件,实现配置文件敏感数据自动加解密。masterkeypath的路径需要满足如下 - [配置说明](https://support.huaweicloud.com/devg-astropro/astropro_06_0053.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [devspore-probe使用概述](https://support.huaweicloud.com/devg-astropro/astropro_06_0057.md): devspore-probe主要是用来对微服务进行监控指标暴露的功能组件,devspore-probe对Micrometer做二次封装,借助自动配置,默认提供多种中间件的兼容,同时支持指标扩展,业务可根据自身需要扩展指标。devspore-probe除了原有的Micrometer的功能外,还提供了以下两种功能:监控数据自动上报AOM平台支 - [使用指南](https://support.huaweicloud.com/devg-astropro/astropro_06_0059.md): 下文中配置项的格式为yaml文件,如果配置文件为properties格式,需自行修改格式。配置项的具体值含义参考配置说明devspore-probe的配置样例:devspore: probe: metrics: tags: component: demo-ap - [支持注解形式自定义监控指标](https://support.huaweicloud.com/devg-astropro/astropro_06_0061.md): 为了方便用户更加快速、便捷地使用micrometer定义自己的监控指标,devspore-probe提供了注解的方式去快速地定义监控指标,避免了定义复杂的监控类。 - [监控数据自动上报AOM平台](https://support.huaweicloud.com/devg-astropro/astropro_06_0062.md): devspore-probe支持将微服务中的监控指标及数据自动上报到AOM平台,用户可在AOM平台上通过指标名称、标签等过滤并分析监控数据。应用运维管理(Application Operations Management),简称AOM,是云上应用的一站式立体化运维管理平台,实时监控应用及云资源,采集各项指标、日志及事件等数据分析应用健康状 - [配置说明](https://support.huaweicloud.com/devg-astropro/astropro_06_0063.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [常见问题](https://support.huaweicloud.com/devg-astropro/astropro_06_0064.md): 使用devspore-probe并开启上报监控数据到AOM后频繁打印日志:post metrics to aom success。在项目中添加配置参数:logging.level.com.huawei.devspore.probe=error,使得devspore-probe仅打印error日志。 - [概述](https://support.huaweicloud.com/devg-astropro/astropro_06_0072.md): devspore-swagger-extension是对原生swagger进行增强的组件,通过添加自定义标签手段,使得swagger更好的描述泛型类,在AstroPro代码生成阶段可正确生成泛型类。该组件需配合springfox(swagger2)使用。您需具备以下开发能力:熟悉Java语言,并有Java程序开发经验。熟悉Maven。安装 - [swagger2使用指南](https://support.huaweicloud.com/devg-astropro/astropro_06_0074.md): 通过Maven引入需要的依赖。com.huaweicloud.devspore:swagger-extension-springfox组件提供了如下配置项:其中,devspore.swagger-extension.package-name为必填项,否则用此swagger文档生成的客户端代码编译将会有问题。若有需要为方法添加一些自定义的特 - [依赖情况](https://support.huaweicloud.com/devg-astropro/astropro_06_0075.md): 以下为本组件的具体依赖情况:com.huaweicloud.devspore:swagger-extensionswagger-extension组件依赖依赖组件版本scopeorg.projectlombok:lombok1.18.32compilecom.huaweicloud.devspore:swagger-extension-s - [devspore-clientcontrol使用概述](https://support.huaweicloud.com/devg-astropro/astropro_06_0077.md): 本文主要描述如何通过devspore-clientcontrol在代码中使用超时、重试、熔断和降级的功能。您需具备以下开发能力:熟悉Java语言,并有Java程序开发经验。熟悉Maven。安装的工具包括JDK、Maven、Eclipse和IDEA ,配置对应的环境变量,确保本地开发环境可用。超时:超过指定时间还未返回指定结果的任务。重试: - [接入指南](https://support.huaweicloud.com/devg-astropro/astropro_06_0079.md): pom文件添加依赖。 com.huaweicloud.devspore devspore-clientcontrol ${devspore-clientcontrol.version}< - [使用超时功能](https://support.huaweicloud.com/devg-astropro/astropro_06_0081.md): clientcontrol提供了超时功能,当目标业务方法执行超过执行时间后,会终止代码的执行,具体使用方式如下:pom文件添加依赖。配置文件,参考下面配置样例。devspore: client-control: biz-pool: prioritized: false core-pool-size: 2 - [使用重试功能](https://support.huaweicloud.com/devg-astropro/astropro_06_0082.md): clientcontrol提供了重试功能,当目标业务方法执行报错时,会按照用户配置的策略重试目标业务方法,具体使用方式如下:当使用超时功能时,当前方法不能运行在异步线程中,异步会导致超时功能失效。触发重试的机制是方法抛出异常,不管是什么异常,只要抛出了异常方法就会重试,如果抛出某些异常的时候不想重试,则可以参考配置中的ignore-exc - [缓存优先](https://support.huaweicloud.com/devg-astropro/astropro_06_0084.md): clientcontrol提供了一种名为缓存优先的功能。当使用缓存优先功能时,在执行目标业务代码时,优先会查询缓存,如果缓存存在则返回缓存结果,如果缓存不存在则执行目标业务代码。当使用缓存优先时clientcontrol的处理逻辑如下:读取缓存,判断是否是性能缓存。如果是性能缓存,直接将性能缓存当结果返回。如果不是性能缓存,执行原方法。如 - [服务优先](https://support.huaweicloud.com/devg-astropro/astropro_06_0085.md): clientcontrol提供了一种名为服务优先的功能。当使用服务优先功能时,在执行目标业务代码时,优先执行业务代码并返回,如果业务代码报错则去查询缓存并返回。具体使用方式如下:当使用服务优先时clientcontrol的处理逻辑如下:执行原方法,如果执行成功,更新缓存,返回结果。如果执行方法失败,获取缓存。如果成功拿到缓存,则将缓存结果 - [自定义降级](https://support.huaweicloud.com/devg-astropro/astropro_06_0086.md): clientcontrol提供了自定义降级的功能。当目标业务代码报错时,如果用户想要执行自定义的降级逻辑可以参考以下配置。具体使用方式如下:当只需要使用自定义降级方法的时候,无需关注配置。当结合clientcontrol的其他功能使用时,只需要在注解中添加fallback属性就可以了。@ClientControl(fallback = " - [参数配置说明](https://support.huaweicloud.com/devg-astropro/astropro_06_0087.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [clientcontrol中ttl和performanceTtl的具体含义是什么](https://support.huaweicloud.com/devg-astropro/astropro_06_0089.md): Cache配置有两个ttl,一个ttl(可靠性缓存)和一个performanceTtl(性能缓存)。存在误解这两个为是两个缓存,其实缓存只有一个。实际给缓存设置的缓存过期时间为ttl配置,缓存存入的时候,连同当前时间一同存入了,取出的时候就可以取出缓存存入时间,通过计算与performanceTtl进行比较得出是否是性能缓存。 - [无法获取本地线程变量](https://support.huaweicloud.com/devg-astropro/astropro_06_0090.md): ClientControl的超时功能是搭配线程池使用的,所以当使用本地线程变量的时候会导致无法获取线程变量的问题。这种情况一般推荐使用远程调用自带的超时控制,将ClientControl的超时功能关闭。提前获取需要的信息,传入加了@ClientControl注解的方法中。 - [redis缓存不存在的属性反序列化](https://support.huaweicloud.com/devg-astropro/astropro_06_0091.md): redis在存入的时候,如果对象中存在is开头的方法,但是又没有具体的属性。那么在存入的时候,会将auth转换为一个属性存入缓存当中,在反序列化的时候就会报反序列化失败。在is方法上面添加@JsonIgnore注解。 - [找不到createMultiZonClient的bean](https://support.huaweicloud.com/devg-astropro/astropro_06_0092.md): 当使用缓存功能,并且缓存组件使用的redis时,报如图所示的异常。使用devspore-dcs连接redis。devspore-dcs会默认创建一个bean名称为createMultiZoneClient的redisConnectionFactory,如果用户没有手动修改这个bean名称的话可以不配置devspore.client-con - [自定义缓存key读取失败](https://support.huaweicloud.com/devg-astropro/astropro_06_0093.md): 运行时报错com.huaweicloud.devspore.clientcontrol.core.ClientControlCacheComponent] [ERROR] - [Expression [xxxxx] @xx: ELxxxx]。此报错是因为使用了自定义缓存key的功能,注解中配置了@clientcontrol(rules=' - [访问熔断状态的方法时报错异常](https://support.huaweicloud.com/devg-astropro/astropro_06_0094.md): 运行时报错Request processing failed; nested exception is io.github.resilience4j.circuitbreaker.CallNotPermittedException: CircuitBreaker 'com.huaweicloud.testclientcontrol.ser - [clientcontrol注解不生效](https://support.huaweicloud.com/devg-astropro/astropro_06_0095.md): clientcontrol注解不生效。clientcontrol是依托于spring的aop来实现的。当注解不生效时,用户需要排查以下两个问题:版本使用是否正确,如果用户使用的是jdk17、clientcontrol必须使用jdk17的版本,jdk17的版本在版本号中会有JDK17的标识,如 2.1.6.JDK17-RELEASE,不带J - [自定义降级方法不生效](https://support.huaweicloud.com/devg-astropro/astropro_06_0096.md): 自定义降级方法不生效。请排查自定义降级方法的定义的限制。方法列表需要和原方法一致,此外要额外添加一个Throwable的参数,放在参数列表的最后一个。方法的返回值要和原方法保持一致。方法的修饰类型要大于原方法。如:原方法是public的,那自定义降级的方法不能小于public。 - [在项目启动时报NPE问题](https://support.huaweicloud.com/devg-astropro/astropro_06_0097.md): 在项目启动时,报如图1所示问题。用户需要排查是否在项目启动时使用到了clientcontrol的功能,如在启动时使用了clientcontrol的功能,需要保证clientcontrol要优先初始化。可以在使用到clientcontrol功能的bean上加上@DependsOn("defaultClientControlRules")。 - [熔断器打开,导致方法调用失败](https://support.huaweicloud.com/devg-astropro/astropro_06_0098.md): 熔断器打开,导致方法调用失败。在没有使用自定义降级方法和缓存的时候,原方法如果调用失败会抛出方法原始出的错误。如果使用了自定义降级方法。熔断前:自定义降级方法中的最后一个参数(异常参数),封装的就是原方法的异常。熔断后:最后一个异常参数会固定抛出io.github.resilience4j.circuitbreaker.CallNotPe - [redis故障后clientcontrol的处理逻辑是什么](https://support.huaweicloud.com/devg-astropro/astropro_06_0099.md): 当clientcontrol的缓存类型配置为redis时,此时clientcontrol相当于是redis的使用方,redis自身的配置(超时时间,重试等)还是服务自己设置的,跟clientcontrol没有关系。clientcontrol中有两个配置参数cache-consecutive-exception-times和cache-in - [2.1.7.JDK17-RELEASE之前版本开启重试功能概率性报错](https://support.huaweicloud.com/devg-astropro/astropro_06_0100.md): 2.1.7.JDK17-RELEASE之前版本开启重试功能时,有概率会报“The request object has been recycled and is no longer associated with this facade”错误。升级版本到2.1.7.JDK17-RELEASE。将重试参数log-correlation-pr - [概述](https://support.huaweicloud.com/devg-astropro/astropro_06_0102.md): devspore-http-log是一款以标准json格式打印web请求相关信息日志的组件。包含以下三种日志:accessLog:打印下游服务对本服务请求的相关信息,如请求方式、状态码等,详情见access日志字段说明。requestLog:打印本服务对上游服务请求的相关信息,如请求方式、状态码等,详情见request日志字段说明。met - [access日志](https://support.huaweicloud.com/devg-astropro/astropro_06_0103.md): devspore-http-log打印access日志是使用servlet过滤器的方式来实现的,过滤器名称:DevsporeHttpLogFilter。如不想打印access日志可通过配置文件设置devspore.http-log.access.enable=false来关闭access日志。access日志中除打印的固定字段外,用户还可 - [request日志](https://support.huaweicloud.com/devg-astropro/astropro_06_0158.md): devspore-http-log打印请求日志是通过实现常见HTTP请求客户端的拦截器来完成的。拦截器可以在请求发送之前和响应返回之后对数据进行处理,从而实现日志记录。例如,在Spring Boot中,可以通过实现ClientHttpRequestInterceptor接口并重写intercept方法来创建自定义拦截器。在拦截器中,可以添 - [method日志](https://support.huaweicloud.com/devg-astropro/astropro_06_0159.md): devspore-http-log打印methodLog主要是通过Spring的切面来实现的。pom文件添加如下依赖: com.huaweicloud.devspore devspore-http-log - [日志输出格式配置示例](https://support.huaweicloud.com/devg-astropro/astropro_06_0160.md): devspore-http-log推荐直接输出纯json格式的日志,方便对日志进行解析聚合统计分析。具体log4j2.xml配置可参考以下配置: - [配置说明](https://support.huaweicloud.com/devg-astropro/astropro_06_0105.md): 华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。 - [spring-boot-huawei使用概述](https://support.huaweicloud.com/devg-astropro/astropro_06_0109.md): 本SDK旨在简化基于spring-boot的项目开发时,对于开发环境依赖jar包的管理问题。您需具备以下开发能力:熟悉Java语言,并有Java程序开发经验。熟悉Maven。安装的工具包括JDK、Maven、Eclipse和IDEA ,配置对应的环境变量,确保本地开发环境可用。 - [使用spring-boot-huawei组件](https://support.huaweicloud.com/devg-astropro/astropro_06_0112.md): spring-boot-huawei是一个管理jar包的SDK,主要帮助用户管理一些常用sdk的依赖版本。当前spring-boot-huawei各功能模块以jar包的方式提供起始依赖,自动加入实现该模块功能的jar依赖,使用时直接在项目的pom中添加对应版本的功能模块即可,以核心模块为例,使用如下:其他模块参见各组件的文档。spring - [使用spring-boot-starter-huawei组件](https://support.huaweicloud.com/devg-astropro/astropro_06_0113.md): spring-boot-starter-huawei组件具备开发一个基本的基于spring-boot的web项目的基本依赖,使用时只需将该组件的坐标添加到工程的pom文件中即可。直接作为dependency依赖引入(此步骤必须)。 ... 2.1.9-RELE - [组件纳管的依赖包和版本](https://support.huaweicloud.com/devg-astropro/astropro_06_0114.md): spring-boot-starter-huawei包含的依赖包(代码中pom可不引入相关依赖)。spring-boot-starter-huawei包含的依赖包包名groupId:artifactId备注org.springframework:spring-core-org.springframework:spring-beans-or - [日志配置](https://support.huaweicloud.com/devg-astropro/astropro_06_0116.md): spring-boot-starter-huawei中默认使用slf4j作为日志门面,log4j2作为日志实现框架。当项目中的依赖可能存在有关logback日志框架的时候需要将其排除,否则可能会有spring-boot-starter-huawei中配置的slf4j(使用log4j-slf4j-impl桥接slf4j的日志)的日志框架相冲 - [使用swagger进行在线API文档配置](https://support.huaweicloud.com/devg-astropro/astropro_06_0117.md): spring-boot-starter-huawei添加了swagger2和swagger3包的依赖,API在线文档使用springdoc-openapi-ui。springdoc基本配置较为简单,如下所示:若原有项目中使用的是springfox+swagger,则启动时可能报错:此时,若后续仍想使用springfox+swagger,则 - [AstroPro-SDK版本变更与下载](https://support.huaweicloud.com/devg-astropro/astropro_06_0200.md): AstroPro-SDK版本变更记录及下载地址如下。您可以按需下载所需的AstroPro-SDK,也可以直接通过表1中链接,一次性下载所有的AstroPro-SDK。如果您能访问外网并下载Maven依赖,则可通过修改maven settings.xml文件来配置华为开源镜像仓库进行依赖管理,具体配置如下:linux下验证一致,则表示压缩包