groovy java_groovy初体验:groovy在java中的应用

第一次接触groovy,主要是在java中嵌入groovy脚本,因为groovy和java的融合度非常好。

先放上来第一次写的一段groovy:

63dba23099648abf74500a81e65d5778.png

其实它完成的就是一句java的system.out操作,主要为了理解binding在groovy中的应用

说一下背景,这里的功能是为了打印日志,本来用的是system.out,结果师父为了让我接触一下groovy,就强行让我加段脚本

然后我就学了一下groovy的强大!

首先,java和groovy的结合有几种方式:(首先别忘了添加groovy的依赖包!)

1)直接运行groovy的脚本(就是我这种啦)

2)java中动态运行groovy脚本:就是java加载一个groovy脚本,然后调用脚本的方法

给个例子:

packagegroovy;importgroovy.lang.GroovyClassLoader;importgroovy.lang.GroovyObject;importjava.io.File;public classJava2GroovyDynamic {public static void main(String[] args) throwsException {//TODO Auto-generated method stub

ClassLoader parent=ClassLoader.getSystemClassLoader();

GroovyClassLoader loader= newGroovyClassLoader(parent);

Class groovyClass= loader.parseClass(new File("D:\\workspace\\groovy\\src\\groovy\\GroovyDemo.groovy"));

GroovyObject groovyObject=(GroovyObject)groovyClass.newInstance();

Object[] param= {123,321};int res = (int) groovyObject.invokeMethod("add", param);

System.out.println("res="+res);

}

}

groovy脚本:

packagegroovyclassGroovyDemo {static int add(int x,inty) {return x+y;

}staticmain(args) {int z = add(123,321);

println("x+y="+z);

}

}

3)groovy脚本引擎:通过设定CLASSPATH来初始化groovy脚本引擎,可以运行该path下的任何groovy脚本文件了

packagegroovy;importgroovy.lang.Binding;importgroovy.util.GroovyScriptEngine;public classJava2GroovyEngine {public static void main(String[] args) throwsException {//TODO Auto-generated method stub

String path= "D:\\workspace\\groovy\\src\\groovy\\";

GroovyScriptEngine gse= newGroovyScriptEngine(path);

Binding binding= newBinding();

binding.setVariable("input", "Groovy");

gse.run("Test.groovy", binding);

System.out.println(binding.getVariable("output"));

}

}

groovy脚本:

packagegroovy;

output= "Hello ${input}";

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值