🍠共建仓库
# 创建共建仓库
不同开发者在不同业务部门,当然涉及到不同的应用项目,本人是在商详研发组,所以需要创建一个基于商详的共建楼层,项目名:detail-cooperate
。仓库地址 (opens new window)。
以下为示例项目:
# 引入共建SDK
共建SDK提供共建执行器所需要继承的抽象类AbstractFloorProcessor
和注解@CubeDomainAbility
<dependency>
<groupId>com.jd.cube</groupId>
<artifactId>cube-cooperate-sdk</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
# 开发一个共建楼层处理器
下面以价格楼层共建为例
/**
* 共建楼层处理器样例
*
* @Author huleilei9
* @Date 2022/8/1
**/
@Slf4j
@CubeCooperateFloorProcessor(bizCode = "jdHome", code = "priceCoopFloor", description = "[京东到家]价格共建楼层处理器")
public class PriceFloorProcessorHandler extends AbstractFloorProcessor {
@Override
public boolean paramCheck(CooperateFloorContext context) {
if (CollectionUtil.isEmpty(context.getParams())) {
return false;
}
Object skuId = context.getParams().get("skuId");
if (Objects.isNull(skuId)) {
log.error("入参 skuId 缺失");
return false;
}
return true;
}
/**
* 逻辑执行
*
* @param context
* @return
*/
@Override
public JSONObject execute(CooperateFloorContext context) {
log.info("DemoFloorProcessorHandler 。。。");
Object skuId = context.getParams().get("skuId");
if (Objects.isNull(skuId)) {
log.error("入参 skuId 缺失");
return null;
}
JSONObject jsonObject = new JSONObject();
jsonObject.put("skuId", skuId);
jsonObject.put("price", "66666");
return jsonObject;
}
}
# 继承AbstractFloorProcessor
- 重写
paramCheck
方法: 该方法为参数校验方法,如果参数校验失败则不会执行下面的execute
方法 - 重写
execute
方法:共建楼层执行器核心执行方法,参数为提供给共建方使用的参数信息CooperateFloorContext
# 标记共建处理器
使用@CubeCooperateFloorProcessor
标记的类。 Cube会自动识别该注解将资源信息上报给Cube平台。ISV引擎在解析模板配置时会自动回调该处理器的
paramCheck
方法和execute
方法。
这里介绍一下 @CubeCooperateFloorProcessor
注解
code
:处理器唯一标识,不同处理器不允许重复,建议使用枚举或常量声明,重复框架会在启动时主动抛出异常bizCode
:处理器业务标识description
: 处理器描述信息,会自动上报到平台,提供给开发者配置使用version
:预留字段,开发者无需关注
/**
* 共建楼层处理器
*
* @Author huleilei9
* @Date 2022/8/16
*/
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
@Component
@Documented
public @interface CubeCooperateFloorProcessor {
/**
* 楼层处理器code 最好用枚举值
* 共建方业务身份code + 楼层处理器code ,平台唯一
*
* @return
*/
String code() default "";
/**
* 共建方业务身份code(平台唯一)
*
* @return
*/
String bizCode() default "";
/**
* Description string.
*
* @return the string
*/
String description() default "";
/**
* 版本
*
* @return
*/
String version() default "";
}
# 项目编译
共建房将完善好的应用程序进行打包发布到Maven景象仓库 运行以下命令
mvn clean package
帮助我们改善此文档 (opens new window)
上次更新: 2022/09/03, 20:56:28