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

第一次接触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:\\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脚本:

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:\\workspace\\groovy\\src\\groovy\\";

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}";

相关文章

背景:    8月29日,凌晨4点左右,某服务告警,其中一个...
https://support.smartbear.comeadyapi/docs/soapui/steps/g...
有几个选项可用于执行自定义JMeter脚本并扩展基线JMeter功能...
Scala和Java为静态语言,Groovy为动态语言Scala:函数式编程,...
出处:https://www.jianshu.com/p/ce6f8a1f66f4一、一些内部...
在运行groovy的junit方法时,报了这个错误:java.lang.Excep...