WEB开发网
开发学院软件开发Java 实战 Groovy: 在 Java 应用程序中加一些 Groovy 进... 阅读

实战 Groovy: 在 Java 应用程序中加一些 Groovy 进来

 2009-11-19 00:00:00 来源:WEB开发网   
核心提示: 可以看到,运行 Groovy 脚本非常容易,实战 Groovy: 在 Java 应用程序中加一些 Groovy 进来(9),我只是创建了 GroovyShell 的实例,传递进脚本名称,区别在于:对于 GroovyScriptEngine,您可以在实例化的时候给它提供一系列目录,然后调用 run

可以看到,运行 Groovy 脚本非常容易。我只是创建了 GroovyShell 的实例,传递进脚本名称,然后调用 run() 方法。

还可以做其他事情。如果您喜欢,那么也可以得到自己脚本的 Script 类型的 GroovyShell 实例。使用 Script 类型,您就可以传递进一个 Binding 对象,其中包含任何运行时值,然后再继续调用 run() 方法,如清单 8 所示:


清单 8. 有趣的 GroovyShell
package com.vanward.gembed; 
import java.io.File; 
import groovy.lang.Binding; 
import groovy.lang.GroovyShell; 
import groovy.lang.Script; 
public class ShellParseEmbedGroovy{ 
 public static void main(String args[]) throws Throwable{ 
 GroovyShell shell = new GroovyShell(); 
 Script scrpt = shell.parse( 
  new File("C:\\dev\\groovy-embed\\src\\groovy\\ 
   com\\vanward\\groovy\\Songs.groovy")); 
  
 Binding binding = new Binding(); 
 Object[] path = {"C:\\music\\temp\\mp3s"}; 
 binding.setVariable("args",path);  
 scrpt.setBinding(binding); 
  
 scrpt.run(); 
 } 
} 

Groovy 的脚本引擎

GroovyScriptEngine 对象动态运行脚本的时候,非常像 GroovyShell。区别在于:对于 GroovyScriptEngine,您可以在实例化的时候给它提供一系列目录,然后让它根据要求去执行多个脚本,如清单 9 所示:


清单 9. GroovyScriptEngine 的作用
package com.vanward.gembed; 
import java.io.File; 
import groovy.lang.Binding; 
import groovy.util.GroovyScriptEngine; 
public class ScriptEngineEmbedGroovy{ 
 public static void main(String args[]) throws Throwable{ 
  
 String[] paths = {"C:\\dev\\groovy-embed\\src\\groovy\\ 
  com\\vanward\\groovy"}; 
 GroovyScriptEngine gse = new GroovyScriptEngine(paths); 
 Binding binding = new Binding(); 
 Object[] path = {"C:\\music\\temp\\mp3s"}; 
 binding.setVariable("args",path); 
  
 gse.run("Songs.groovy", binding); 
 gse.run("BusinessObjects.groovy", binding); 
 } 
} 

上一页  4 5 6 7 8 9 10  下一页

Tags:实战 Groovy Java

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接