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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM