groovy初体验:groovy在java中的应用
发布时间:2020-12-14 16:37:21 所属栏目:大数据 来源:网络整理
导读:第一次接触groovy,主要是在java中嵌入groovy脚本,因为groovy和java的融合度非常好。 先放上来第一次写的一段groovy: 其实它完成的就是一句java的system.out操作,主要为了理解binding在groovy中的应用 说一下背景,这里的功能是为了打印日志,本来用的是s
第一次接触groovy,主要是在java中嵌入groovy脚本,因为groovy和java的融合度非常好。 先放上来第一次写的一段groovy: 其实它完成的就是一句java的system.out操作,主要为了理解binding在groovy中的应用 说一下背景,这里的功能是为了打印日志,本来用的是system.out,结果师父为了让我接触一下groovy,就强行让我加段脚本 然后我就学了一下groovy的强大! 首先,java和groovy的结合有几种方式:(首先别忘了添加groovy的依赖包!) 1)直接运行groovy的脚本(就是我这种啦) 2)java中动态运行groovy脚本:就是java加载一个groovy脚本,然后调用脚本的方法 给个例子: package groovy; import groovy.lang.GroovyClassLoader; import groovy.lang.GroovyObject; import java.io.File; public class Java2GroovyDynamic { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub ClassLoader parent = ClassLoader.getSystemClassLoader(); GroovyClassLoader loader = new GroovyClassLoader(parent); Class groovyClass = loader.parseClass(new File("D:workspacegroovysrcgroovyGroovyDemo.groovy")); GroovyObject groovyObject = (GroovyObject)groovyClass.newInstance(); Object[] param = {123,321}; int res = (int) groovyObject.invokeMethod("add",param); System.out.println("res="+res); } } groovy脚本: package groovy class GroovyDemo { static int add(int x,int y) { return x+y; } static main(args) { int z = add(123,321); println("x+y="+z); } } 3)groovy脚本引擎:通过设定CLASSPATH来初始化groovy脚本引擎,可以运行该path下的任何groovy脚本文件了 package groovy; import groovy.lang.Binding; import groovy.util.GroovyScriptEngine; public class Java2GroovyEngine { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub String path = "D:workspacegroovysrcgroovy"; GroovyScriptEngine gse = new GroovyScriptEngine(path); Binding binding = new Binding(); binding.setVariable("input","Groovy"); gse.run("Test.groovy",binding); System.out.println(binding.getVariable("output")); } } groovy脚本: package groovy; output = "Hello ${input}"; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |