Java动态规则实现示例如何详细解析?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2030个文字,预计阅读时间需要9分钟。
背景+业务系统在应用过程中,有时需要处理经常变化的部分,这部分要求可能是业务规则,也可能是不同的数据处理逻辑。这部分动态规则的配置问题,往往需要可配置。
背景
业务系统在应用过程中,有时候要处理“经常变化”的部分,这部分需求可能是“业务规则”,也可能是“不同的数据处理逻辑”,这部分动态规则的问题,往往需要可配置,并对性能和实时性有一定要求。
Java不是解决动态层问题的理想语言,在实践中发现主要有以下几种方式可以实现:
- 表达式语言(expression language)
- 动态语言(dynamic/script language language),如Groovy
- 规则引擎(rule engine)
表达式语言
Java Unified Expression Language,简称JUEL,是一种特殊用途的编程语言,主要在JavaWeb应用程序用于将表达式嵌入到web页面。Java规范制定者和Java Web领域技术专家小组制定了统一的表达式语言。JUEL最初包含在JSP2.1规范JSR-245中,后来成为Java EE 7的一部分,改在JSR-341中定义。
主要的开源实现有:OGNL,MVEL,SpEL,JUEL,Java Expression Language (JEXL),JEval,Jakarta JXPath等。
本文共计2030个文字,预计阅读时间需要9分钟。
背景+业务系统在应用过程中,有时需要处理经常变化的部分,这部分要求可能是业务规则,也可能是不同的数据处理逻辑。这部分动态规则的配置问题,往往需要可配置。
背景
业务系统在应用过程中,有时候要处理“经常变化”的部分,这部分需求可能是“业务规则”,也可能是“不同的数据处理逻辑”,这部分动态规则的问题,往往需要可配置,并对性能和实时性有一定要求。
Java不是解决动态层问题的理想语言,在实践中发现主要有以下几种方式可以实现:
- 表达式语言(expression language)
- 动态语言(dynamic/script language language),如Groovy
- 规则引擎(rule engine)
表达式语言
Java Unified Expression Language,简称JUEL,是一种特殊用途的编程语言,主要在JavaWeb应用程序用于将表达式嵌入到web页面。Java规范制定者和Java Web领域技术专家小组制定了统一的表达式语言。JUEL最初包含在JSP2.1规范JSR-245中,后来成为Java EE 7的一部分,改在JSR-341中定义。
主要的开源实现有:OGNL,MVEL,SpEL,JUEL,Java Expression Language (JEXL),JEval,Jakarta JXPath等。

