【Groovy】Groovy 扩展方法 ( 实例扩展方法配置 | 扩展方法示例 | 编译实例扩展类 | 打包实例扩展类字节码到 jar 包中 | 测试使用 Thread 实例扩展方法 )
2023-06-13 09:18:00 时间
文章目录
一、扩展方法示例
为 Thread
扩展 hello 方法 , 在该方法中传入 Closure
参数 , 在该方法中 , 执行传入的闭包参数 ;
class ThreadExt {
public static Thread hello(Thread self, Closure closure) {
closure()
return self
}
}
二、实例扩展方法配置
在 工程根目录\src\main\groovy\ 目录下创建 manifest\META-INF\services 目录 ,
在 工程根目录\src\main\groovy\manifest\META-INF\services 目录下 , 创建 org.codehaus.groovy.runtime.ExtensionModule 配置文件 , 配置如下内容 :
moduleName=groovyExt
moduleVersion=1.0
extensionClasses=ThreadExt
moduleName 是模块名称 , 可以配置一个任意字符串标识符 ,
moduleVersion 是模块版本 ,
staticExtensionClasses 用于配置 静态扩展方法 , extensionClasses 用于配置 实例扩展方法 ;
这里配置的是 实例扩展方法 ;
配置完成后的项目结构如下 :
三、编译实例扩展类
在 Terminal 面板中 , 执行
cd src/main/groovy
命令 , 进入到 src/main/groovy 目录中 ,
然后执行
groovyc -d classes ThreadExt.groovy
命令 , 编译 ThreadExt.groovy 源码到 classes 目录中 ; 其中 ThreadExt.groovy 中定义了 Thread 类的扩展方法 ;
编译过程及结果如下 :
四、打包静态扩展类字节码到 jar 包中
在 执行
jar -cf thread.jar -C classes . -C manifest/ .
命令 , 将 classes 中的字节码文件按照 manifest/ 规则 , 打包到 thread.jar 文件中 ;
五、测试使用 Thread 实例扩展方法
创建一个 Groovy 脚本 , 执行为 Thread 扩展的静态方法 hello 方法 ;
new Thread().hello{
printf "Hello"
}
在 Terminal 面临中 , 使用命令行执行该 Groovy 脚本 ,
groovy -classpath thread.jar ThreadExtApplication.groovy
执行结果为 :
Hello
相关文章
- maven中jar和war的区别
- Springboot文件上传_maven上传jar包到远程仓库
- Jar包后台启动并输出日志
- java jar 没有主清单属性_Spring Boot jar中没有主清单属性的解决方法「建议收藏」
- jar 解压war_war包解压命令
- Unable to process Jar entry [module-info.class] from Jar的问题解决
- 【错误记录】自定义 Gradle 插件报错 ( Could not find implementation class x for plugin x specified in jar:file )
- oracle jdbc jar包异常详解数据库
- 使用Mavne生成可以执行的jar文件详解程序员
- spring原理案例-基本项目搭建 02 spring jar包详解 spring jar包的用途编程语言
- 下载MySQL驱动Jar包:下载指南(mysql驱动jar包在哪)
- 依赖掌握 Linux 系统查看Jar包依赖的方法(linux查看jar包)
- spring boot 发布 jar 包转为 war详解编程语言
- Linux下实现Jar包引用的步骤(linux引用jar包)
- 包Linux下修改Jar包的方法(linux修改jar)
- MySQL驱动Jar包:掌握使用技巧(mysql的驱动jar包)
- 标题:如何在Linux上运行Jar文件(linux运行jar文件)
- MySQL驱动JAR包:让数据访问更加方便(mysql驱动jar)
- 使用Linux运行JAR包的完美指令(linux运行jar包命令)
- 包Linux下添加Jar包的技巧(linux添加jar)
- Linux下打包Jar的步骤指南(linux打包jar)
- Linux环境下如何导入Jar文件(linux导入jar文件)
- Oracle数据库连接Jar包实现快速连接(oracle连接jar)
- 包Linux下安装Jar包的简易指南(linux安装jar)
- 包Linux中如何执行 Jar 包(linux怎么执行jar)
- Linux命令中的JAR文件操作(jarlinux命令)
- 使用SQLServer驱动JAR解决数据库连接问题(sqlserver驱动jar)