GroovyShell 脚本应用

GroovyShell 脚本应用

 

 

在Groovy中你可以使用GroovyShell对Groovy脚本和表达式进行调试,GroovyShell允许你通过Binding对象传入或传出变量。下面通过三种方式,传递参数。

 

def groovyShellTest1()
{
    def city = new City()
        
    def shell = new GroovyShell()
    def closure
    def result
    def shellContext = "{city->city.name='haerbin';city.tel='123456';city.save();return city;}"

    try
    {
        closure = shell.evaluate(shellContext)
        result = closure(city)
        println "result = " + result
        return result
    }
    catch (Exception e)
    {
        println e
    }
}

  

def groovyShellTest2()
{
    def city = new City()

    Binding binding = new Binding();
    binding.setVariable("city", city);

    def shell = new GroovyShell(binding)
    def result
    def shellContext = "city.name='haerbin2';city.tel='876543';city.save();return city;"
    try
    {
        result = shell.evaluate(shellContext)
        println "result = " + result
        return result
    }
    catch (Exception e)
    {
        println e
    }
}

  

def groovyShellTest3()
{
    Binding binding = new Binding();
    binding.setVariable("age", 10);

    def shell = new GroovyShell(binding)
    def result
    try
    {
        result = shell.evaluate("println 'Hello Groovy !';return age * 10")

        println "result = " + result
        return result
    }
    catch (Exception e)
    {
        println e
    }
}

 

 

java脚本引擎Groovy实战 ​互联网时代随着业务的飞速发展,不仅产品迭代、更新的速度越来越快,个性化需求也是越来越多。如何快速的满足各种业务的个性化需求是我们要重点思考的问题。我们开发的系统如何才能做到热部署就能适应各种规则变化呢?实现业务和规则的解耦。 好了,Java的ScriptEngine脚本引擎给了我们一个选择,它支持代码动态执行,代码修改后不需要重启JVM进程,就可以使用解析或编译方式执行,非常方便,在一些动态业务规则、热更新、热修复等场景中会非常方便。 阅读详情

相关推荐

springboot 中使用groovy脚本的各种方式

springboot中使用groovy脚本的各种方式

没啥简介 6272

Java使用Groovy执行脚本的使用,GroovyShell Matespace内存溢出解决

Java使用Groovy执行脚本的使用;GroovyShell Matespace内存溢出简单可行的解决方法;Java执行表达式 判断参数是否满足;

mao1055229269的专栏 2716

样本不均衡时AUC反而下降?用imbalanced-learn库实战解决分类陷阱

本文探讨了样本不均衡时AUC指标下降的现象,并通过imbalanced-learn库实战演示了如何解决这一分类陷阱。文章详细分析了不同采样技术(如SMOTE、ADASYN)对模型性能的影响,并提供了XGBoost和逻辑回归模型的优化建议,帮助数据科学家在实际项目中做出更明智的决策。

weixin_29174013的博客 326

GroovyGroovy 脚本调用 ( Groovy 类中调用 Groovy 脚本 | 创建 GroovyShell 对象并执行 Groovy 脚本 | 完整代码示例 )

一、Groovy 类中调用 Groovy 脚本、 1、创建 GroovyShell 对象并执行 Groovy 脚本、 2、代码示例、 二、完整代码示例、 1、调用者 Groovy 脚本的类、 2、被调用者 Groovy 脚本、 3、执行结果、

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 3828

Native Groovy是一种在类Unix环境中运行的Groovy脚本的方式,它可以使用Groovy脚本Shell脚本的方式来处理系统级任务

Groovy正则表达式中,贪婪模式是指正则表达式尽可能匹配最长的字符串,而懒惰模式是指正则表达式尽可能匹配最短的字符串。例如,在匹配字符串"aaaab"中的正则表达式"a.*b"中,贪婪模式会匹配整个字符串为"aaaab”,而懒惰模式会匹配"aab"。与Java的正则表达式类似,Groovy正则表达式使用斜杠(/)来定义一个正则表达式,可以使用多种修饰符来控制匹配方式。引用给出了在JMeter中使用正则表达式提取器的方法,而在Groovy中使用正则表达式进行字符串分割,可以使用。

[Blog][Domain] programb.blog.csdn.net 940

「Apache Groovy」- 运行 Shell 命令 @20210402

问题描述 在 Groovy 中,我们需要运行 Shell 命令,尤其将其当作脚本使用并配合 Git 命令时(我们知道有 JGit 类库,但是远不及命令方便,也可能是习惯)。 总之,我们需要在 Groovy 中调用 Shell 命令。 该笔记将记录:在 Groovy 中,如何执行 Shell 命令,以及常见操作、注意事项。 解决方案 执行命令,并获取输出: String result = "ls -lt ".execute().text println result.toUpperCase(.

k4nz 1191

GroovyShellGroovyScriptEngine 区别

如果你只需要执行简单的、独立的 Groovy 脚本或表达式,那么就足够了,它简单直接,易于使用。如果你需要更复杂的脚本管理,比如多文件脚本脚本依赖、热重载等功能,那么是更好的选择,尽管它的配置和使用相对复杂一些。根据你的具体需求选择合适的工具,可以让你的开发过程更加高效。

sunshine_pb的专栏 806

Java调用Grovy脚本

Groovy被设计为轻量级和容易嵌入到Java应用程序系统。 1、Groovy脚本样例 def run(foo) { println 'Hello World!' x = 123 foo ...

359

java脚本引擎groovy,groovy 三种运用 | 学步园

1、groovyShell 脚本语言运用,支持表达式及脚本文件:def run(foo) {println 'Hello World!'x = 123foo * 10}run foopublic class TestGroovyShell {/*** @param args*/public static void main(String[] args) {try {Binding binding ...

weixin_42396058的博客 545

groovyshell java if_java - 嵌入Java的GroovyShell-在具有白名单的静态编译脚本中使用POJO - 堆栈内存溢出...

基本上,我有一个GUI,允许用户编和执行Groovy脚本GroovyShell通过SecureASTCustomizer编译器配置进行保护。 我有一个类,比如说RandomClass ,我希望用户能够通过变量helper进行访问。 该代码必须是静态编译的,因此我们可以在尝试执行之前检查脚本的有效性。 但是, 在此阶段 ,我只关心编译脚本 。 计划是检查脚本是否有效,例如helper...

weixin_42365065的博客 451

光遇弹琴脚本怎么用_一招教你怎么用Java调用groovy脚本

最近手上有一个专项要做,专项思路大概就是开发一个服务将所有其他Java开发的自动化工具脚本收口,统一通过这个服务做调度转发。为什么要聊groovy呢?大家也都知道,阿里、美团、滴滴、京东等大厂项目基本上都是Java栈为主,其实Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python和Ruby许多强大的特性,Groovy代码能够与Java代码很好地结合,也能用于扩...

weixin_28744423的博客 4257

java 嵌入groovy_在java应用中嵌入groovy

http://www.infoq.com/articles/groovy-1-6),所以这里先尝试groovy。g了一下,发现在应用里嵌入groovy有三种方式(参考http://groovy.codehaus.org/Embedding+Groovy)第一种是比较传统的,通过GroovyShell的方式,跟用beanshell的方式差不多。Binding binding = new Bindin...

weixin_30066287的博客 662

Groovy全攻略--嵌入篇

Groovy全攻略--嵌入篇 Groovy被设计得非常轻量级,很容易迁入到任何Java应用系统。 你可以使用BSF将Groovy脚本嵌入任何Java代码中.但是Groovy提供了一个轻量级的紧密集成.下面是3种主要方法: 1.使用Shell调试脚本或表达式 在Groovy中你可以使用GroovyShellGroovy脚本和表达式进行调试.GroovyShell允许你通过Bindi

猴子程序员 1205

Java动态调用脚本语言Groovy

Java动态调用脚本语言Groovy 2019-05-15 目录 0. pom.xml添加依赖1. 使用GroovyShell计算表达式2. 使用GroovyScriptEngine脚本引擎加载Groovy脚本3. 使用GroovyClassLoader动态地载入Groovy的类4. 使用JAVA脚本API 0. pom.xml添加依赖 <depe...

weixin_34362790的博客 347

Groovy脚本语法检测、编译、及运行

Java中运行Groovy,有三种比较常用的类支持:GroovyShell,GroovyClassLoader以及Java-Script引擎(JSR-223). GroovyShell: 通常用来运行"script片段"或者一些零散的表达式(Expression) GroovyClassLoader: 如果脚本是一个完整的文件,特别是有API类型的时候,比如有类似于JAVA的接口,面向对象设计时,通常使用GroovyClassLoader. ScriptEngine: JSR-223应该是推荐的

休对故人思故国,且将新火试新茶。诗酒趁年华 3999

groovy 三种运用

1、groovyShell 脚本语言运用,支持表达式及脚本文件: def run(foo) {        println 'Hello World!'        x = 123        foo * 10 } run foo   public class TestGroovyShell {  /**   * @param args   */  public st

zj7758的专栏 1万+

groovy脚本执行与优化

1. 背景 Apache的Groovy是Java平台上设计的面向对象编程语言。这门动态语言拥有类似Python、Ruby和Smalltalk中的一些特性,可以作为Java平台的脚本语言使用,Groovy代码动态地编译成运行于Java虚拟机(JVM)上的Java字节码,并与其他Java代码和库进行互操作。由于其运行在JVM上的特性,Groovy可以使用其他Java语言编的库。Groovy的语法...

bwju的专栏 5755

java groovy脚本_JAVA嵌入Groovy脚本

Java中运行Groovy,有三种比较常用的类支持:GroovyShell,GroovyClassLoader以及Java-Script引擎(JSR-223).GroovyShell: 通常用来运行"script片段"或者一些零散的表达式(Expression)GroovyClassLoader: 如果脚本是一个完整的文件,特别是有API类型的时候,比如有类似于JAVA的接口,面向对象设计时,通常...

weixin_30199299的博客 678
上一篇: Linux 定时任务 - MySQL数据库备份
下一篇: PostgreSQL 角色权限管理
iamlyky
博客等级 码龄14年 6粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值