JD-Matrix
首先介绍一下JD-matrix:通过对matrix框架的架构了解,发现JD的matrix是对DDD领域驱动设计理念的一种具体实现。
matrix框架中包含有一下注解:
@APP @prodect @Domain @DomainService @DomianAbility @DomainAbilityExtension @Extension
@APP
@APP表示垂直业务身份
内容包含
/**
* 业务身份定义类
* code 业务身份code
* name 业务身份名称
* priority 优先级,数值越大优先级约高
* parserClass 业务身份解析类
*/
@App(code = BizApp.CODE,
name = "XXX",
priority = 300,
version = "1.0.0",
parserClass = BizAppCodeParser.class)
public class BizApp extends BaseApp {
public static final String CODE="XXX";
}
@product
@Product表示水平业务身份
/**
* 业务身份定义类
* code 业务身份code
* name 业务身份名称
**/
@Product(code = ProductAProduct.CODE, name = "水平业务身份A")
public class ProductAProduct extends BaseProduct {
public static final String CODE = "productA";
/**
* 判断水平业务身份是否被击中 返回true则为击中
*/
@Override
public boolean isEffect(DomainModel domainModel) {
return true;
}
/**
* 返回禁止掉的水平业务身份code集合
*/
@Override
public Collection<String> getDisabledExtCodes() {
return null;
}
}
@Domain 业务领域
@Domain(code = UseDomain.CODE, name = "用户")
public class UseDomain {
public static final String CODE="TRADE.cart.user";
}
@DomainService 领域服务
public interface GetUserDiscountService extends IDomainService {
String ITEM_SERVICE_SAVING_ORDER = "DOMAIN_SERVICE_GETDISCOUNT";
@DomainService(
parent = UseDomain.CODE,
code = ITEM_SERVICE_SAVING_ORDER,
name = "XXX"
)
public Double getDiscount(OrderModel order);
}
@DomainAbility 领域能力
/**
* CheckSubmitOrderAbility简介
* 能力类
* 需要@DomainAbility注解 parent 为领域code
* 需要继承BaseDomainAbility类 第一个泛型orderModel用于判断业务身份,垂直业务身份,水平业务身份是否击中的入参参考
* com.jd.migration.matrx2.fresh7.ext.BizAppCodeParser类的三个方法 。第二个泛型为能力要调用的拓展点方法。
*/
@DomainAbility(name = "XXX", parent = TesthjzDomain.CODE)
public class CheckSubmitOrderAbility extends BaseDomainAbility<OrderModel, CheckSubmitOrderExt> {
....
}
@DomainAbilityExtension 扩展点定义
public interface GetUserDiscountExt extends IDomainAbilityExtension {
String EXT_CHECK_CODE="EXT_TRADE_CART_USE_GetUserDiscountExt_getDiscount";
@DomainAbilityExtension(
code = EXT_CHECK_CODE,
name = "XXX"
)
public ResponseResult getDiscount(OrderModel order);
}
@Extension 扩展点实现
@Extension(code = BrandFlashApp.CODE,scenario = "nike" ,index = 1)
public class BrandFlashGetUserDiscountExtImpl implements GetUserDiscountExt {
....
}
---------------------------------------------------------------------------
国之殇,未敢忘!
南京大屠杀!
731部队!
(有关书籍《恶魔的饱食》)以及核污染水排海等一系列全无人性的操作,购买他们的食品和为它们提供帮助只会更加变本加厉的害你,呼吁大家不要购买日本相关产品
昭昭前事,惕惕后人
吾辈当自强,方使国不受他人之侮!
---------------------------------------------------------------------------
作者:三号小玩家
出处:https://www.cnblogs.com/q1359720840/
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。 版权信息

浙公网安备 33010602011771号