【Groovy】Groovy 扩展方法 ( 实例扩展方法配置 | 扩展方法示例 | 编译实例扩展类 | 打包实例扩展类字节码到 jar 包中 | 测试使用 Thread 实例扩展方法 )
文章目錄
- 一、擴(kuò)展方法示例
- 二、實(shí)例擴(kuò)展方法配置
- 三、編譯實(shí)例擴(kuò)展類
- 四、打包靜態(tài)擴(kuò)展類字節(jié)碼到 jar 包中
- 五、測(cè)試使用 Thread 實(shí)例擴(kuò)展方法
一、擴(kuò)展方法示例
為 Thread 擴(kuò)展 hello 方法 , 在該方法中傳入 Closure 參數(shù) , 在該方法中 , 執(zhí)行傳入的閉包參數(shù) ;
class ThreadExt {public static Thread hello(Thread self, Closure closure) {closure()return self}}二、實(shí)例擴(kuò)展方法配置
在 工程根目錄\src\main\groovy\ 目錄下創(chuàng)建 manifest\META-INF\services 目錄 ,
在 工程根目錄\src\main\groovy\manifest\META-INF\services 目錄下 , 創(chuàng)建 org.codehaus.groovy.runtime.ExtensionModule 配置文件 , 配置如下內(nèi)容 :
moduleName=groovyExt moduleVersion=1.0 extensionClasses=ThreadExtmoduleName 是模塊名稱 , 可以配置一個(gè)任意字符串標(biāo)識(shí)符 ,
moduleVersion 是模塊版本 ,
staticExtensionClasses 用于配置 靜態(tài)擴(kuò)展方法 , extensionClasses 用于配置 實(shí)例擴(kuò)展方法 ;
這里配置的是 實(shí)例擴(kuò)展方法 ;
配置完成后的項(xiàng)目結(jié)構(gòu)如下 :
三、編譯實(shí)例擴(kuò)展類
在 Terminal 面板中 , 執(zhí)行
cd src/main/groovy命令 , 進(jìn)入到 src/main/groovy 目錄中 ,
然后執(zhí)行
groovyc -d classes ThreadExt.groovy命令 , 編譯 ThreadExt.groovy 源碼到 classes 目錄中 ; 其中 ThreadExt.groovy 中定義了 Thread 類的擴(kuò)展方法 ;
編譯過(guò)程及結(jié)果如下 :
四、打包靜態(tài)擴(kuò)展類字節(jié)碼到 jar 包中
在 執(zhí)行
jar -cf thread.jar -C classes . -C manifest/ .命令 , 將 classes 中的字節(jié)碼文件按照 manifest/ 規(guī)則 , 打包到 thread.jar 文件中 ;
五、測(cè)試使用 Thread 實(shí)例擴(kuò)展方法
創(chuàng)建一個(gè) Groovy 腳本 , 執(zhí)行為 Thread 擴(kuò)展的靜態(tài)方法 hello 方法 ;
new Thread().hello{printf "Hello" }在 Terminal 面臨中 , 使用命令行執(zhí)行該 Groovy 腳本 ,
groovy -classpath thread.jar ThreadExtApplication.groovy執(zhí)行結(jié)果為 :
Hello 《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的【Groovy】Groovy 扩展方法 ( 实例扩展方法配置 | 扩展方法示例 | 编译实例扩展类 | 打包实例扩展类字节码到 jar 包中 | 测试使用 Thread 实例扩展方法 )的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【Groovy】Groovy 扩展方法
- 下一篇: 【Groovy】Groovy 脚本调用