`
AliKevin2011
  • 浏览: 119031 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

MVEL-简介

阅读更多
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简介 Drools是一个用Java语言编写的开源规则引擎,支持业务规则管理和决策表功能。它提供了一个灵活的框架来实现业务逻辑,尤其适合处理复杂的业务决策逻辑。本文档旨在介绍Drools的基本语法及其在...

    DROOLS语法详解

    #### 一、简介 DROOLS是一个开源的业务规则管理系统(BRMS),提供了灵活而强大的规则引擎,支持多种语言(包括Java和MVEL),广泛应用于决策自动化、工作流管理和事件处理等领域。DROOLS规则语言(DRL)是一种基于...

    Activiti 5_13 用户手册

    1. **Activiti简介** Activiti 是一个轻量级、灵活且高性能的BPM平台,它基于Apache 2.0许可协议,提供了一整套流程定义语言(BPMN 2.0)、服务集成和监控工具。5.13版本在前一版本的基础上进行了优化和增强,以...

    基于Java的规则引擎--java规则引擎

    1. **简介** 在现代软件开发中,业务逻辑往往复杂且易变,传统的编程方式难以灵活应对业务规则的变化。因此,规则引擎应运而生,它是一种能够处理和执行业务规则的软件系统,旨在使业务决策与应用程序代码分离。...

    [Drools]JAVA规则引擎(非常好的一篇教程).doc

    #### 一、Drools简介 Drools是一个功能强大的业务规则管理系统(BRMS)框架,它基于Java开发,主要用于处理复杂的业务决策逻辑。Drools支持多种规则语言,包括传统的DRL(Drools Rule Language)、MVEL以及XML等,...

    千锋2018elasticsearch笔记修改.docx

    #### 1.1 Elasticsearch简介 Elasticsearch是一款基于Lucene的分布式搜索引擎,具有实时处理大量数据的能力。它通过RESTful API提供服务,使得开发者可以通过HTTP请求来管理和查询数据。Elasticsearch使用Java语言...

    电商实时风控系统建设方案.pptx

    Mvel2是Drools的规则的一个实现,支持java代码。因此,在新的反欺诈引擎中,选择了预编译的脚本表达式进行规则的执行。 5. 用ES存储非结构化数据 为了解决数据存储问题,选择了Elastic Search作为运营数据的来源。...

    activiti7开发指南

    1. **Activiti7简介**:介绍Activiti7的历史、设计理念和主要特性,包括它的轻量级架构、强大的API支持以及与BPMN 2.0标准的紧密集成。 2. **安装与配置**:详细讲解如何在Java环境中安装Activiti7,包括依赖库的...

    电商实时风控系统建设方案.pdf

    1. 实时风控系统简介 实时风控系统是一种辅助风控运营人员日常运营的风险判断能力,主要包含人工审核、案件审理、处罚中心、交易辅助查询、名单库管理等功能。该系统收集了业务系统的部分数据,为风险分析师或者...

    activiti实战及示例源码

    1. **Activiti简介**:Activiti是一个开源的工作流和业务自动化引擎,基于Java开发,支持BPMN 2.0标准,广泛应用于企业流程管理。它的设计目标是轻量级、易于使用和高度可扩展。 2. **BPMN 2.0标准**:Business ...

    activiyi5.21用户手册, 不要积分

    1. **Activiti简介**:介绍Activiti的设计理念、核心功能以及它在业务流程自动化中的角色。可能包括与BPMN 2.0规范的兼容性,以及它如何简化业务流程建模和执行。 2. **安装与配置**:详述如何在各种环境中设置和...

    Packt.Drools.Developers.Cookbook.Jan.2012

    ### JBoss Drools规则引擎简介 JBoss Drools规则引擎是JBoss企业中间件的一部分,提供了一种灵活且强大的方法来定义和执行业务规则。它不仅支持传统的专家系统类型的规则,还支持复杂的事件处理和流程管理。通过...

    Activiti实战完整扫描高清版.zip

    1. **Activiti简介**:介绍Activiti的基本概念、设计哲学和功能特性,以及它与其它BPM引擎的对比,使读者对Activiti有一个初步的认识。 2. **安装与配置**:详细讲解如何在开发环境中安装和配置Activiti,包括...

    activiti5用户手册

    一、 Activiti简介 Activiti是一款轻量级、高性能的工作流引擎,它基于BPMN 2.0标准,提供了丰富的API和图形化建模工具,支持复杂的业务流程建模。它的设计理念是易于使用,同时又具有企业级的稳定性和可扩展性。...

    activiti 第3天 共4天 视频教程

    1. **Activiti简介**:首先会介绍Activiti的基本概念,包括它是什么,为什么使用它,以及它的主要功能。可能会提及它与BPMN(Business Process Model and Notation)标准的关系,解释BPMN符号和流程图。 2. **安装...

    JBPM工作流开发指南

    #### 一、JBPM简介 JBPM(JBoss Business Process Management)是JBoss提供的一款开源的工作流引擎,用于实现业务流程管理(Business Process Management, BPM)的功能。它基于Java技术,可以嵌入到任何Java应用中。...

Global site tag (gtag.js) - Google Analytics