groovy脚本不知为什么物?anyway,下面经过简单一个示例帮你揭开groovy的神秘面纱。java
groovy脚本在个人使用过程当中,其语法和java语法很是相似,可是其是有一套属于本身的脚本的,咱们能够经过在java代码中调用groovy脚本,就像调用一个方法同样,能够给groovy脚本传递一些必须的参数。测试
这里介绍在java中调用groovy脚本的方式示例以下:code
public class GroovyScriptClient { private static final String scriptContent = "String object = scriptContext.get(\"object\");" + " return innerService.sayBye(object);"; public static Script getGroovyScript(){ Class<Script> clazz = clazz = new GroovyClassLoader().parseClass(scriptContent); Script script = null; try { script = clazz.newInstance(); } catch (Exception ex){ System.out.println("exception" + ex); } Map<String, String> params = new HashMap<String, String>(); params.put("object", "yesterday"); Binding binding = new Binding(); binding.setVariable("scriptContext", params); binding.setVariable("innerService", new ServiceTest()); script.setBinding(binding); return script; } public static void main (String args[]){ Script script = GroovyScriptClient.getGroovyScript(); Object scriptResult = script.run(); System.out.println(scriptResult); } }; class ServiceTest{ public String sayBye(String object){ return "forget " + object; } }
上面是一段脚本的测试代码,这段代码能够算是一个脚本引擎的缩影,一个脚本引擎系统的核心。对象
scriptContent是一段简单的groovy脚本ip
groovy.lang.GroovyClassLoader#parseClass(java.lang.String)解析脚本字符串字符串
经过groovy.lang.Binding能够给脚本传递参数。get
innerService的value是一个对象,在脚本中能够直接使用这个对象,很是的方便。io
适用与一些不须要发布可是常常须要改变的情景,规模大的也能够用于作脚本引擎。同时编写脚本不须要对系统进行升级发布减小了不少发布流程,灵活修改等好处,后面还要增强groovy脚本的理解,能够考虑后续写一个脚本引擎来玩玩。class