编排功能方法
-
人员迭代导致的代码冗余,你我他都有自己的实现
-
不能动态的改变业务逻辑,可能在关键地方会使用开关
-
需求迭代排期时间长,需要大量的人力
-
产品基本不直掉现有能力,不能给甲方一个预估且较的时间
解决的思路
-
在现有的能力下,组合各类服务以完成相应业务
-
业务逻辑可以动态的调整变更,亦可实现不回滚完成逻辑切换
-
一个业务就是一个调用链,使用者只需关注入参和返回
实现目标&原理
目标
原理
-
加载 功能&业务 配置 到内存
-
解析配置形成以业务key为主键,功能调用链为值的模型
-
提供 runBiz 开启业务 和 获取返回 的入口
实现示例
功能&业务定义
一个业务形成一个调用功能或者业务的链。即业务中可嵌套业务。
功能的核心要素
-
功能的id即key
-
功能的描述
-
是否需要保存参数和返回
-
功能类的获取方式,通过spring容器或者反射
-
功能类中的具体功能,即类中方法
-
当前只支持一个入参或者没有入参,即入参必须用一个自定义对象包裹,若有多个入参复杂度太高
-
入参对象中的哪些属性作为输入
-
确定从入参中还是返回中的属性作为下一个功能的入参属性
-
确定哪些属性作为下一个功能的入参属性
functions_define
业务的核心要素
-
业务key即业务名称
-
调用的功能或者业务的key
-
定义功能或者业务的第一个功能的入参是从上一个返回的哪个属性中来
biz_define
开始一个调用
可以动态加载功能&业务定义,覆盖已有定义,动态改变调用业务逻辑