AliKevin 写道
MVEL是一个基于Java应用程序的表达式语言,本文以示例的方式简单介绍MVEL.
一、概述
二、示例
示例一 比较相等、获取值和计算
MVEL可以用==判断相等,如foo.name == "Mr.Foo".其中foo可以为上下文对象也可以是外部变量.具体示例代码如下:Person.java
public class Person {
private String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}
SimpleTester.java
package org.ndot.mvel.MvelTester.example1;
import java.util.HashMap;
import java.util.Map;
import org.mvel2.MVEL;
import org.mvel2.compiler.ExecutableAccessor;
/**
*
*/
public class SimpleTester {
public static void main(String[] args) {
Person personInst = new Person();
personInst.setName("Mr.Foo");
// 判断相等
Object objResult = MVEL.eval("name == 'Mr.Foo'", personInst);
System.out.println("objResult=" + objResult);
// 取值
String strResult = (String) MVEL.eval("name", personInst);
System.out.println("strResult=" + strResult);
// 计算
Map vars = new HashMap();
vars.put("x", new Integer(5));
vars.put("y", new Integer(10));
// 第一种方式
Integer intResult = (Integer) MVEL.eval("x * y", vars);
System.out.println("intResult=" + intResult);
// 第二种方式
ExecutableAccessor compiled = (ExecutableAccessor) MVEL.compileExpression("x * y");
intResult = (Integer) MVEL.executeExpression(compiled, vars);
System.out.println("intResult=" + intResult);
}
}
打印结果:
objResult=true
strResult=Mr.Foo
intResult=50
intResult=50
三、参考资源
http://mvel.codehaus.org/
分享到:
相关推荐
#### 一、Drools简介 Drools是一个用Java语言编写的开源规则引擎,支持业务规则管理和决策表功能。它提供了一个灵活的框架来实现业务逻辑,尤其适合处理复杂的业务决策逻辑。本文档旨在介绍Drools的基本语法及其在...
#### 一、简介 DROOLS是一个开源的业务规则管理系统(BRMS),提供了灵活而强大的规则引擎,支持多种语言(包括Java和MVEL),广泛应用于决策自动化、工作流管理和事件处理等领域。DROOLS规则语言(DRL)是一种基于...
1. **Activiti简介** Activiti 是一个轻量级、灵活且高性能的BPM平台,它基于Apache 2.0许可协议,提供了一整套流程定义语言(BPMN 2.0)、服务集成和监控工具。5.13版本在前一版本的基础上进行了优化和增强,以...
1. **简介** 在现代软件开发中,业务逻辑往往复杂且易变,传统的编程方式难以灵活应对业务规则的变化。因此,规则引擎应运而生,它是一种能够处理和执行业务规则的软件系统,旨在使业务决策与应用程序代码分离。...
#### 一、Drools简介 Drools是一个功能强大的业务规则管理系统(BRMS)框架,它基于Java开发,主要用于处理复杂的业务决策逻辑。Drools支持多种规则语言,包括传统的DRL(Drools Rule Language)、MVEL以及XML等,...
#### 1.1 Elasticsearch简介 Elasticsearch是一款基于Lucene的分布式搜索引擎,具有实时处理大量数据的能力。它通过RESTful API提供服务,使得开发者可以通过HTTP请求来管理和查询数据。Elasticsearch使用Java语言...
Mvel2是Drools的规则的一个实现,支持java代码。因此,在新的反欺诈引擎中,选择了预编译的脚本表达式进行规则的执行。 5. 用ES存储非结构化数据 为了解决数据存储问题,选择了Elastic Search作为运营数据的来源。...
1. **Activiti7简介**:介绍Activiti7的历史、设计理念和主要特性,包括它的轻量级架构、强大的API支持以及与BPMN 2.0标准的紧密集成。 2. **安装与配置**:详细讲解如何在Java环境中安装Activiti7,包括依赖库的...
1. 实时风控系统简介 实时风控系统是一种辅助风控运营人员日常运营的风险判断能力,主要包含人工审核、案件审理、处罚中心、交易辅助查询、名单库管理等功能。该系统收集了业务系统的部分数据,为风险分析师或者...
1. **Activiti简介**:Activiti是一个开源的工作流和业务自动化引擎,基于Java开发,支持BPMN 2.0标准,广泛应用于企业流程管理。它的设计目标是轻量级、易于使用和高度可扩展。 2. **BPMN 2.0标准**:Business ...
1. **Activiti简介**:介绍Activiti的设计理念、核心功能以及它在业务流程自动化中的角色。可能包括与BPMN 2.0规范的兼容性,以及它如何简化业务流程建模和执行。 2. **安装与配置**:详述如何在各种环境中设置和...
### JBoss Drools规则引擎简介 JBoss Drools规则引擎是JBoss企业中间件的一部分,提供了一种灵活且强大的方法来定义和执行业务规则。它不仅支持传统的专家系统类型的规则,还支持复杂的事件处理和流程管理。通过...
1. **Activiti简介**:介绍Activiti的基本概念、设计哲学和功能特性,以及它与其它BPM引擎的对比,使读者对Activiti有一个初步的认识。 2. **安装与配置**:详细讲解如何在开发环境中安装和配置Activiti,包括...
一、 Activiti简介 Activiti是一款轻量级、高性能的工作流引擎,它基于BPMN 2.0标准,提供了丰富的API和图形化建模工具,支持复杂的业务流程建模。它的设计理念是易于使用,同时又具有企业级的稳定性和可扩展性。...
1. **Activiti简介**:首先会介绍Activiti的基本概念,包括它是什么,为什么使用它,以及它的主要功能。可能会提及它与BPMN(Business Process Model and Notation)标准的关系,解释BPMN符号和流程图。 2. **安装...
#### 一、JBPM简介 JBPM(JBoss Business Process Management)是JBoss提供的一款开源的工作流引擎,用于实现业务流程管理(Business Process Management, BPM)的功能。它基于Java技术,可以嵌入到任何Java应用中。...