1、通过GroovyShell来实现:
Binding binding = new Binding();
GroovyShell shell = new GroovyShell(binding);
Object value = shell.evaluate("println 'Hello World!'; return \"ret\"");
System.out.println(value);
Binding用来设置脚本中用到的参数。在用GroovyShell来执行的时候,每次都会根据文本编译成Class,这样有两个问题:
a、在编译代码上消耗的时间远大于脚本执行的时间。
b、生成的Class太多的话会导致FULL GC,轻则系统变慢,重则OMM。
2、通过GroovyClassLoader来实现: