MVEL为 MVFLEX Expression Language(MVFLEX表达式语言)的缩写,它是一种动态/静态的可嵌入的表达式语言和为Java平台提供Runtime(运行时)的语言。最初是作为一个应用程序框架实用程序的语言开始,该项目现已发展完全独立。MVEL通常用于执行用户(程序员)通过配置XML文件或注释等定义的基本逻辑。它也可以用来解析简单的JavaBean表达式。Runtime(运行时)允许MVEL表达式通过解释执行或者预编译生成字节码后执行。
MVEL是一个基于java语法的表达式,为JAVA语言提供便捷灵活的动态性。MVEL吸收了大量的java语法,但是作为一个表达式语言,还是与java有很多不同之处,比如MVEL像正则表达式一样,有直接支持集合、数组、字符串的操作符。
除了表达式语言以外,MVEL还提供了用来配置和构造字符串的模板语言。
MVEL表达式主要有以下部分内容:
属性表达式
布尔表达式
方法调用
变量赋值
函数定义
一 :引入pom
<dependency>
<groupId>org.mvel</groupId>
<artifactId>mvel2</artifactId>
<version>2.4.8.Final</version>
</dependency>
二:简单使用
public static void main(String[] args) {
String testStr="if(user.username.equals('fsk')){user.address='beijing';}; return user.toString();";
User user=new User();
user.setUsername("fsk");
Map<String,User> map=new HashMap<>();
map.put("user",user);
System.out.println(MVEL.eval(testStr,map));
System.err.println(user.getAddress());
//输出为
// User{id=1111111111null, username=22222222'fsk', address=33333333333'beijing'}
// beijing
}
}