YonBuilder后端框架MDD介绍

一、MDD核心概念

元数据  

元数据是描述实体的数据,对数据及信息资源的描述性信息。

UI元数据   

UI元数据是描述前端UI的数据,对前端UI数据级信息资源的描述性信息。(UI元数据组成:容器、组件、动作)

UI模板

基于元数据配置和生成的模式化页面,一个模板由实体元数据和UI元数据进行抽象描述。

业务规则

后端业务逻辑都称为业务规则;MDD提供规则引擎使得用户可以快速扩展自定义规则。

  • 产品界面展现形式-元数据

 

  • 产品界面展现形式-UI元数据

 

  • 产品界面展现形式-UI模板

 

  • 产品界面展现形式-业务规则

 

二、MDD后端运行机制

前后端一体化的模型驱动方案:

MDD组件层次结构:

 MDD调用方式:

 UI元数据驱动引擎-界面加载过程:

1.查询UI元数据模型。前端调用/meta接口,返回数据结构;

2.经过Node层转发,调用后端 /bill/getbill 返回查询数据;

3.Node层将协议中的view自动转换成可执行的JS文件(VM对象),实现模型层的模式化渲染。

 后端规则引擎-执行过程:

BillServiceImpl是通用CRUD的抽象,提供所有单据的操作入口。

 

三、MDD扩展开发

1.开发过程

2.后端扩展开发-业务规则开发

  1. 自定义业务规则:类需要继承 AbstractCommonRule,然后通过注解Component标注该类。
  2. 实现execute方法,完成业务功能
  3. 注册自定义规则
/**
 * @desc  单据 审批提交规则
 **/
@Slf4j
@Component("StockoutAffirmApplySubmitRule")
public class StockoutAffirmApplySubmitRule extends AbstractCommonRule {

    @Override
    public RuleExecuteResult execute(BillContext billContext, Map<String, Object> paramMap) throws Exception {
        // 获取规则实体
        List<BizObject> bills = this.getBills(billContext, paramMap);
        // 定义返回值
        RuleExecuteResult result = new RuleExecuteResult();

        if( bills != null && bills.size() > 0){
            BizObject bill = bills.get(0);
            log.info("bill  的启用状态:{}", JSONObject.toJSONString(bill.get("enable")));
            if( "0".equals(bill.get("enable")) ){
                throw new BusinessException("停用的单据不能提交!!!");
            }
        }
        return result;
    }
}

     4.动作上配置规则链

3.BizObject通用数据对象

BizObject内部统一使用map做数据结构;

重写get/set方法,避免字符串直接操作的数据错乱;

针对任何类型的属性,都可以获取。

 

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值