JD-Matrix
2022/4/26 23:15:08
本文主要是介绍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 { .... }
这篇关于JD-Matrix的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现
- 2024-05-30我们小公司,哪像华为一样,用得上IPD(集成产品开发)?
- 2024-05-30java excel上传--poi
- 2024-05-30安装笔记本应用商店的pycharm,再安排pandas等模块,说是没有打包工具?
- 2024-05-29java11新特性
- 2024-05-29哪些无用敏捷指标正在破坏敏捷转型?
- 2024-05-29鸿蒙原生应用再新丁!新华社 入局鸿蒙
- 2024-05-29设计模式 之 迭代器模式(Iterator)