基于Java的动态配置规则的方法、装置、系统和可读介质制造方法及图纸

技术编号:25223206 阅读:55 留言:0更新日期:2020-08-11 23:12
本申请提供了一种基于Java的动态配置规则的方法、装置、系统和计算机可读介质。该方法包括以下步骤:接收终端传入的RESTful调用请求,其中RESTful调用请求中包含规则表达式的字符串;基于预设知识库对字符串进行解析;将解析后的字符串拆解为相应的令牌并构建相应的抽象语法树;根据抽象语法树生成相应的字节码文件;以及将字节码文件加载进Java虚拟机并执行。该方法能够根据由终端传入的包含规则表达式的调用请求,生成相应的字节码文件并执行,从而实现了由终端业务人员进行规则的动态配置并即时实施规则,无需开发人员预先进行规则配置。

【技术实现步骤摘要】
基于Java的动态配置规则的方法、装置、系统和可读介质
本申请主要涉及数据处理
,尤其涉及一种基于Java的动态配置规则的方法、装置、系统和计算机可读介质。
技术介绍
规则引擎是为了应对大量快速变化的商业业务逻辑应运而生的技术方案,能够根据既定事实和知识库按照一定的算法执行推理逻辑得到正确的结果。规则引擎主要由三部分组成:知识库(KnowledgeBase)、既定事实库(FactBase)和推理机。现有技术中的硬编码方式、编程组件化OSGI、静态脚本(例如TypeScript使得逻辑部分修改实时生效)以及面向开发者的规则引擎(例如Urule、Drools、Easy-Rule)都是面向开发者的,需要开发人员预先进行规则配置,业务人员不能动态地配置或变更规则。因此,如何让业务人员能够动态地配置规则并即时实施规则是本领域技术人员亟需解决的问题。
技术实现思路
本申请要解决的技术问题是提供一种基于Java的动态配置规则的方法、装置、系统和计算机可读介质,能够让终端用户动态地配置规则并即时实施规则。为解决上述技术问题,本申请提供了一种基于Java的动态配置规则的方法,包括:接收终端传入的RESTful调用请求,其中所述RESTful调用请求中包含规则表达式的字符串;基于预设知识库对所述字符串进行解析;将解析后的所述字符串拆解为相应的令牌并构建相应的抽象语法树;根据所述抽象语法树生成相应的字节码文件;以及将所述字节码文件加载进Java虚拟机并执行。可选地,所述预设知识库的数量为一个或多个,其中每个预设知识库中包括一个或多个预设知识点。可选地,所述基于预设知识库对所述字符串进行解析包括:基于所述预设知识点对所述字符串进行匹配和转化;以及根据转化结果对所述字符串中的每个令牌进行类型标记,并得到解析后的所述字符串。可选地,所述将所述解析后的字符串拆解为相应的令牌并构建相应的抽象语法树是基于上下文无关文法、符号优先级和符号关联性进行拆解。可选地,所述根据所述抽象语法树生成相应的字节码文件是使用Javaparser语法解析器进行。可选地,所述规则表达式的字符串为基于函数调用和/或自然语言格式。可选地,当所述预设知识库的数量为多个时,根据以下的一项或多项对所述多个预设知识库进行定义:租户、项目、以及业务场景。为解决上述技术问题,本申请还提供了一种基于Java的动态配置规则装置,包括:接收模块,用于接收终端传入的RESTful调用请求,其中所述RESTful调用请求中包含规则表达式的字符串;解析模块,用于基于预设知识库对所述字符串进行解析;语法树模块,用于将解析后的所述字符串拆解为相应的令牌并构建相应的抽象语法树;字节码文件模块,用于根据所述抽象语法树生成相应的字节码文件;以及加载模块,用于将所述字节码文件加载进Java虚拟机并执行。为解决上述技术问题,本申请还提供了一种基于Java的动态配置规则系统,包括:存储器,用于存储可由处理器执行的指令;以及处理器,用于执行所述指令以实现如上所述的方法。为解决上述技术问题,本申请还提供了一种存储有计算机程序代码的计算机可读介质,所述计算机程序代码在由处理器执行时实现如上所述的方法。与现有技术相比,本申请的基于Java的动态配置规则的方法、装置、系统和计算机可读介质能够根据由终端传入的包含规则表达式的调用请求,生成相应的字节码文件并执行,从而实现了由终端业务人员进行规则的动态配置并即时实施规则,无需开发人员预先进行规则配置。附图说明包括附图是为提供对本申请进一步的理解,它们被收录并构成本申请的一部分,附图示出了本申请的实施例,并与本说明书一起起到解释本申请原理的作用。附图中:图1是根据本申请一实施例示出的基于Java的动态配置规则的方法的流程示意图。图2是根据本申请一实施例示出的基于Java的动态配置规则的装置的框图。图3是根据本申请一实施例示出的基于Java的动态配置规则的系统的系统框图。具体实施方式为了更清楚地说明本申请的实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本申请的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。本申请中使用了流程图用来说明根据本申请的实施例的系统所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各种步骤。同时,或将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。本申请提供了一种基于Java的动态配置规则的方法。图1是根据本申请一实施例示出的基于Java的动态配置规则的方法的流程示意图。如图1所示,本实施例的基于Java的动态配置规则的方法可应用于基于Java的动态配置规则系统,该方法包括以下步骤:步骤101,接收终端传入的RESTful调用请求,其中RESTful调用请求中包含规则表达式的字符串;步骤102,基于预设知识库对字符串进行解析;步骤103,将解析后的字符串拆解为相应的令牌并构建相应的抽象语法树;步骤104,根据抽象语法树生成相应的字节码文件;以及步骤105,将字节码文件加载进Java虚拟机并执行。在步骤101中,系统接收终端传入的RESTful调用请求。终端可以由业务人员直接使用,调用请求可以由业务人员发送。RESTful(RepresentationalStateTransfer,表述性状态转移)请求是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或者JOSN格式定义。在本实施例中使用JSON格式定义RESTful请求。系统所接收的RESTful调用请求的RequestBody中包含有输入脚本文档来自技高网...

【技术保护点】
1.一种基于Java的动态配置规则的方法,包括:/n接收终端传入的RESTful调用请求,其中所述RESTful调用请求中包含规则表达式的字符串;/n基于预设知识库对所述字符串进行解析;/n将解析后的所述字符串拆解为相应的令牌并构建相应的抽象语法树;/n根据所述抽象语法树生成相应的字节码文件;以及/n将所述字节码文件加载进Java虚拟机并执行。/n

【技术特征摘要】
1.一种基于Java的动态配置规则的方法,包括:
接收终端传入的RESTful调用请求,其中所述RESTful调用请求中包含规则表达式的字符串;
基于预设知识库对所述字符串进行解析;
将解析后的所述字符串拆解为相应的令牌并构建相应的抽象语法树;
根据所述抽象语法树生成相应的字节码文件;以及
将所述字节码文件加载进Java虚拟机并执行。


2.如权利要求1所述的方法,其特征在于,所述预设知识库的数量为一个或多个,其中每个预设知识库中包括一个或多个预设知识点。


3.如权利要求2所述的方法,其特征在于,所述基于预设知识库对所述字符串进行解析包括:
基于所述预设知识点对所述字符串进行匹配和转化;以及
根据转化结果对所述字符串中的每个令牌进行类型标记,并得到解析后的所述字符串。


4.如权利要求1所述的方法,其特征在于,所述将所述解析后的字符串拆解为相应的令牌并构建相应的抽象语法树是基于上下文无关文法、符号优先级和符号关联性进行拆解。


5.如权利要求1所述的方法,其特征在于,所述根据所述抽象语法树生成相应的字节码文件是使用Javaparser语法解析器进行...

【专利技术属性】
技术研发人员:杨涛刘丁源
申请(专利权)人:嘉兴太美医疗科技有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1