import groovy.lang.GroovyClassLoader;
import java.lang.reflect.Method;
public class GroovyUtils {
public static void main(String[] args) {
StringBuffer scriptBuff = new StringBuffer();
String enter = "\r\n";
scriptBuff.append("class HelloWorld {").append(enter);
scriptBuff.append(" String sayHello(String name){").append(enter);
scriptBuff.append(" return \"hello, \" + name").append(enter);
scriptBuff.append(" }").append(enter);
scriptBuff.append("}").append(enter);
System.out.println(scriptBuff.toString());
GroovyClassLoader groovyCl = new GroovyClassLoader(GroovyUtils.class.getClassLoader());
Class groovyClass = groovyCl.parseClass(scriptBuff.toString());
try {
Object obj = groovyClass.newInstance();
Method meth = obj.getClass().getMethod("sayHello", new Class[]{String.class});
System.out.println(meth.invoke(obj, new Object[]{"张三"}));
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
控制台会打出
class HelloWorld {
String sayHello(String name){
return "hello, " + name
}
}
hello, 张三
另一种方式的调用
long t1 = System.currentTimeMillis();
String script = "i = new HashMap(); i.put('key1', '1'); return i;";
GroovyShell gs = new GroovyShell();
Object obj = gs.evaluate(script);
System.out.println(obj);
long t2 = System.currentTimeMillis();
System.out.println(t2 - t1 + "ms");
System.out.println(gs.evaluate(script));
System.out.println(System.currentTimeMillis() - t2 + "ms");
分享到:
相关推荐
Java调用Groovy,实时动态加载数据库groovy脚本,java读取mongoDB的groovy脚本,加载实时运行,热部署
干货:Jenkins Pipeline调用shell、python、java、groovy脚本的正确使用姿势.doc
脚本通过上下文applicationcontext获取被测试应用bean,从而可以进行接口内容获取等操作。目前该方式主要运用到性能平台脚本搭建、代码深度测试、接口测试、白盒测试等多方面。...支持Java、groovy脚本。
NULL 博文链接:https://yinxvxv.iteye.com/blog/811328
执行测试开发过程中的groovy脚本,无须安装,解压即可使用,直接运行bin目录下的groovyConsole.bat即可。
问题原因分析:使用ScriptEngine.eval每次都会对脚本进行编译,生成一个新的类,被GroovyClassLoader加载,大量执行计算后,将导致被加载的类数量不断增加,最终OOM。 解决办法:对计算的表达式expression进行预...
使用groovy脚本文件作为任务,不像插件那么繁重。支持http服务器作为镜像进行管理
动态加载指定目录下的groovy脚本,并将其注册为groovy bean,放置于ApplicationContext容器中,并使用命名空间进行分类区分(一个namespace对应于一个ApplicationContext)。同时能够动态感知到groovy脚本的新增、修改...
1、eclipse安装groovy的插件。 2、创建java project。 3、把groovy-all-2.1.9.jar,加入...4、编写hello.groovy脚本文件,并在java代码中调用脚本文件 http://blog.csdn.net/bolg_hero/article/details/19077981
动态加载指定目录下的groovy脚本,并将其注册为groovy bean,放置于ApplicationContext容器中,并使用命名空间进行分类区分(一个namespace对应于一个ApplicationContext)。同时能够动态感知到groovy脚本的新增、修改...
资源名称:Java脚本编程:语言框架与模式内容简介:《Sun公司核心技术丛书·Java...第二部分介绍Java平台实际的技术和解决方案,详细讲解了Groovy脚本语言; 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
基于groovy实现 java脚本动态编译、部署、发布;可以通过脚本直接调用dubbo接口
研究表明,使用Groovy比使用Java写程序,代码量少3-10倍。 DSL是新一代基于领域设计专用语言。由于Groovy的超级灵活性,你可以使用Groovy快速编写基于领域的小语言,从而将编码量进一步减少,程序更容易维护。越少...
主要是通过结合groovy脚本来完成相关的功能,简单的来说需要用户自行提供groovy脚本,nexus提供上传和运行脚本的接口,虽然有些粗糙,但是大部分功能毕竟留出了一个方式供用户去使用,强大的groovy脚本中至于需要
它介绍了JAVAspring的脚本语言的概念、原理和作用,以及如何使用JAVAspring的脚本语言来实现动态扩展,包括Groovy、Python、Ruby等常用的脚本语言的集成和使用,以及一些配置文件和注解的用法。
Groovy是JVM的一个替代语言(替代是指可以用 Groovy 在Java平台上进行Java 编程),使用方式基本与使用 Java代码的方式相同,该语言特别适合与Spring的动态语言支持一起使用,设计时充分考虑了Java集成,这使 ...
使用Groovy脚本在运行时以编程方式添加新端点。 该功能还通过JMX公开。 如何 开始申请 mvn spring-boot:run 添加一个GET端点 curl -X POST ' ...
maven java 源码 java项目,使用maven构建工具,整合groovy代码。 经验:不要使用Grab注解的方式声明依赖,这样需要...执行groovy脚本 编译groovy类 groovy代码中引用java类 java代码中引用groovy类 groovy类作为junit
Groovy 是 用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。使用该种语言不必编写过多的代码,同时又具有闭包和动态语言中的其他特性。 ...
Google App Engine上的Groovy脚本编辑器最终执行器此App Engine应用程序允许在Google App Engine上编写和执行任意Groovy脚本。 可以执行所有在类路径上可用的App Engine API。 同样也涉及类路径上的库。 更多功能: ...