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

摘要:
第一次接触groovy时,我主要是在java中嵌入groovy脚本,因为groovy和java的集成非常好。首先,让我们展示一段首次编写的groovy:实际上,它完成了一个Java系统。out操作主要用于了解groovy中绑定应用程序的背景。这里的功能是打印日志,最初使用的是系统Out,但为了让我接触groovy,master强迫我添加了一个脚本,然后我学会了groovy的强大功能!首先,有几种方法可以将Java与groovy结合起来:(别忘了先添加groovy依赖包!

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

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

groovy初体验:groovy在java中的应用第1张

其实它完成的就是一句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}";

免责声明:文章转载自《groovy初体验:groovy在java中的应用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇用微软makecert.exe生成一个自签名的证书CentOS 6 使用 yum 安装MongoDB及服务器端配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Ruby(rails)win环境下安装

1.RubyInstaller 在RubyInstaller官网下载window版本安装,地址:http://rubyinstaller.org/downloads/ 执行安装程序,勾选Add Ruby executables to your PATH,安装完成在cmd上测试ruby -v查看 注意安装路径中不要有空格,否则会影响rails的安装 TI...

用PHP编写Android应用程序 狼人:

Google的开源Android移动操作系统正在席卷全球智能手机市场,和苹果不一样,它对那些想将应用程序提交到iPhone App Store的开发人员有着严格的指导方针和要求,Google的Android平台非常开放,甚至还可以用PHP编写Android应用程序,Irontech创建了一个运行在Android上的PHP移植程序,结合Android的脚本层...

用calibre和python制作电子书---Python和Git教程

calibre - E-book management是一个很强大的电子书管理软件,可以打开和转换各种格式的电子书,可以抓取新闻到本地阅读,允许用户自定义新闻源,可以通过编写自己recipe让其将网页上的内容抓取下来并且生成电子书,利用这个功能我将廖雪峰老师的Python教程和Git教程做成了epub电子书,使用firefox的epubReader插件就可...

centos安装ruby

下面开始安装Ruby 一、下载Ruby源码包 wget ftp://ftp.ruby-lang.org/pub/ruby/2.1/ruby-2.1.7.tar.gz 二、解压安装Ruby tar zxvf ruby-2.1.7.tar.gz ./configure --disable-install-rdoc make make prefix=/usr/l...

Android JNI 学习(十一):Invocation Api

1. 简介 Invocation API允许软件提供商在原生程序中内嵌Java虚拟机。因此可以不需要链接任何Java虚拟机代码来提供Java-enabled的应用程序。 以下代码演示如何使用: #include <jni.h> /* where everything is defined */ //......

python版本更新升级后第三方库不见了的问题

1、像卸载一般电脑程序一样,把老的Python 3.6.2版本卸载,会自动删除之前配置的环境变量信息 2、官网下载最新的python版本,安装的时候记得勾选Add Python 3.9.5 to PATH就行,会自动添加环境变量 3、pycharm解释器也需要更新下设置,否则执行程序就会报下面的粉红色背景的错误: Error running 'login'...