前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【Groovy】Groovy 脚本调用 ( Groovy 脚本中调用另外一个 Groovy 脚本 | 调用 evaluate 方法执行 Groovy 脚本 | 参数传递 )

【Groovy】Groovy 脚本调用 ( Groovy 脚本中调用另外一个 Groovy 脚本 | 调用 evaluate 方法执行 Groovy 脚本 | 参数传递 )

作者头像
韩曙亮
发布于 2023-03-30 02:29:04
发布于 2023-03-30 02:29:04
1.9K00
代码可运行
举报
运行总次数:0
代码可运行

文章目录

一、Groovy 脚本中调用另外一个 Groovy 脚本


1、调用 evaluate 方法执行 Groovy 脚本

【Groovy】Groovy 脚本调用 ( Groovy 脚本编译 | Groovy 脚本字节码文件分析 ) 博客中 , 已经分析了 Groovy 脚本的本质 , Groovy 脚本继承了 groovy.lang.Script 类 ;

调用 groovy.lang.Script 类的 evaluate 方法 , 传入 Groovy 脚本文件对应的 File 对象 , 即可执行该 Groovy 脚本 ;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    /**
     * 一个助手方法,允许使用此脚本绑定作为变量范围动态计算groovy表达式
     *
     * @param file 要执行的 Groovy 脚本文件 
     */
    public Object evaluate(File file) throws CompilationFailedException, IOException {
        GroovyShell shell = new GroovyShell(getClass().getClassLoader(), binding);
        return shell.evaluate(file);
    }

代码示例 : 两个 Groovy 脚本都在同一个目录中 ; 在 Groovy 脚本中调用如下代码 , 即可执行另外一个 Groovy 脚本 Script.groovy ;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
evaluate(new File("Script.groovy"))

2、参数传递

在 Groovy 脚本中 , 调用另外一个 Groovy 脚本 , 如果要传入参数 , 直接定义 绑定作用域 args 参数 ;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
args = []
args[0] = "arg0"
args[1] = "arg1"

这样在被调用的 Groovy 脚本中 , 就可以获取 上述 args 参数 ;

二、完整代码示例


1、调用者 Groovy 脚本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 要传入的参数
args = []
args[0] = "arg0"
args[1] = "arg1"

// 调用 Script.groovy 脚本
evaluate(new File("Script.groovy"))

2、被调用者 Groovy 脚本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/*
    下面的 age 和 age2 都是变量定义
    age 变量的作用域是 本地作用域
    age2 变量的作用域是 绑定作用域
    一个是私有变量 , 一个是共有变量
 */

// 打印参数
println args

def age = "18"
age2 = "16"

println "$age , $age2"

/*
    定义一个函数
    在下面的函数中 , 可以使用 绑定作用域变量
    不能使用 本地作用域变量
 */
void printAge() {
    println "$age2"
    //println "$age"
}

printAge()

3、执行结果

上面的两个 Groovy 脚本都在相同目录 ;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[arg0, arg1]
18 , 16
16
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-01-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Shiro框架学习,Shiro JSP标签
Shiro提供了JSTL标签用于在JSP/GSP页面进行权限控制,如根据登录用户显示相应的页面按钮。
用户1289394
2021/04/20
1.1K0
Shiro框架学习,Shiro JSP标签
第九章:Shiro的Web——深入浅出学Shiro细粒度权限开发框架
Shiro可以和普通web集成的,但考虑到现在的应用基本都会使用spring,所以就不去讲最基本的web集成了。跟Spring集成的方式前面已经讲过了。 在Web应用中,可以配置[urls]:   [urls]项允许你做一些在我们已经见过的任何Web 框架都不存在的东西:在你的应用程序中定义自适应过滤器链来匹配URL 路径! [urls]的格式   URL_Ant_Path_Expression = Path_Specific_Filter_Chain 例如: … [urls] /index.html =
MonroeCode
2018/02/09
6900
第九章:Shiro的Web——深入浅出学Shiro细粒度权限开发框架
shiro与ssm整合使用
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
suveng
2019/09/18
8970
shiro与ssm整合使用
Shiro面试题(二十道)[通俗易懂]
1.shiro可以完成哪些工作? shiro可以帮助我们完成:认证、授权、加密、会话管理、与Web集成、缓存等
全栈程序员站长
2022/11/04
1.7K0
Shiro的原理及Web搭建
Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。
Java团长
2018/10/18
8270
Shiro的原理及Web搭建
shiro框架的基本理解[通俗易懂]
Subject:主体,代表了当前“用户”,这个用户不一定是一个具体的人,与当前应用交互的任何东西都是Subject,如网络爬虫,机器人等;即一个抽象概念;所有Subject都绑定到SecurityManager,与Subject的所有交互都会委托给SecurityManager;可以把Subject认为是一个门面;SecurityManager才是实际的执行者;
全栈程序员站长
2022/10/03
5120
细说shiro之一:shiro简介
一. Shiro是什么 Shiro是一个Java平台的开源权限框架,用于认证和访问授权。具体来说,满足对如下元素的支持:
编程随笔
2019/09/11
1.2K0
细说shiro之一:shiro简介
第九章:Shiro的Web——深入浅出学Shiro细粒度权限开发框架
Shiro可以和普通web集成的,但考虑到现在的应用基本都会使用spring,所以就不去讲最基本的web集成了。跟Spring集成的方式前面已经讲过了。
MonroeCode
2018/01/10
6680
细说shiro之三:在独立应用中使用shiro
1. 下载 在非Web环境的独立应用中使用Shiro时,只需要shiro-core组件。 在Maven项目中的依赖配置如下:
编程随笔
2019/09/11
4130
细说shiro之三:在独立应用中使用shiro
freemarker中使用shiro标签
继承FreeMarkerConfigurer类,重写afterPropertiesSet()方法;
試毅-思伟
2018/09/06
1.6K0
Shiro教程7(整合SSM项目-授权)
  首先授权必须是在认证通过之后才会执行的操作,之前我们在Shiro教程4(授权操作)该教程中讲过,获取权限我们是通过如下方法实现的
用户4919348
2019/04/02
7310
Shiro教程7(整合SSM项目-授权)
shiro整合springboot之thymeleaf权限控制
文章目录 7.Shiro整合springboot之thymeleaf权限控制 1.引入扩展依赖 2.页面中引入命名空间 3.常见权限控制标签使用 4.加入shiro的方言配置 源码下载:
别团等shy哥发育
2023/02/25
2730
shiro整合springboot之thymeleaf权限控制
Shiro框架03授权--登录授权以及是否放行
目录 1.添加角色和权限的授权方法 2.自定义Realm配置Shiro授权认证 3.使用Shiro标签实现权限验证 3.1 导入Shiro标签库 3.2 Shiro标签库 4.配置注解权限验证 4.1 Shiro注解 4.2 开启注解 4.3 注解权限验证失败不跳转路径问题 ---- 1.添加角色和权限的授权方法 //根据username查询该用户的所有角色,用于角色验证 Set<String> findRoles(String username); //根据username查询他所拥有的权限信
天蝎座的程序媛
2022/11/18
1.2K0
Shiro框架03授权--登录授权以及是否放行
Shiro学习笔记五(Shiro标签,及通配符)
    用户[<shiro:principal/>]拥有角色admin<br/>
梅花
2020/09/28
8290
Shiro学习笔记五(Shiro标签,及通配符)
其实我不仅会 Spring Security,Shiro 也略懂一二!
和大家分享一个松哥原创的 Shiro 教程吧,还没写完,先整一部分,剩下的敬请期待。
江南一点雨
2021/04/22
9950
其实我不仅会 Spring Security,Shiro 也略懂一二!
shiro笔记(七)springboot 整合shiro框架,实现授权功能,Thymeleaf整合shiro和注解控制权限
之前有ini文件的时候,我们的授权是在ini文件里面书写的,现在权限是在数据库里面,那么就需要在realm里面自己写授权的代码了,因为要操作数据库
一写代码就开心
2021/08/10
5980
Shiro的认证与授权流程解析
接下来的几天,我们开讲Shiro,从入门到分析、集成、单点登录整合等几篇。今天我们先来认识一下Shiro吧~
不会飞的小鸟
2020/05/07
6360
【Shiro】Shiro从小白到大神(三)-权限认证(授权)
本节讲权限认证,也就是授权 基于角色的访问控制和基于权限的访问控制的小实例 以及注解式授权和JSP标签授权详解
谙忆
2021/01/21
1.6K0
【Shiro】Shiro从小白到大神(三)-权限认证(授权)
shiro面试知识点总结_jmeter面试常见问题
Shiro是一个强大易用的java安全框架,提供了认证、授权、加密、会话管理、与web集成、缓存等功能,对于任何一个应用程序,都可以提供全面的安全服务,相比其他安全框架,shiro要简单的多。
全栈程序员站长
2022/11/04
9430
Apache Shiro 使用手册 原
一、什么是Shiro Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能: 
wuweixiang
2018/08/14
9590
相关推荐
Shiro框架学习,Shiro JSP标签
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验