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