【Groovy】Groovy 扩展方法 ( 实例扩展方法配置 | 扩展方法示例 | 编译实例扩展类 | 打包实例扩展类字节码到 jar 包中 | 测试使用 Thread 实例扩展方法 )
文章目錄
- 一、擴展方法示例
- 二、實例擴展方法配置
- 三、編譯實例擴展類
- 四、打包靜態擴展類字節碼到 jar 包中
- 五、測試使用 Thread 實例擴展方法
一、擴展方法示例
為 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=ThreadExtmoduleName 是模塊名稱 , 可以配置一個任意字符串標識符 ,
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 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的【Groovy】Groovy 扩展方法 ( 实例扩展方法配置 | 扩展方法示例 | 编译实例扩展类 | 打包实例扩展类字节码到 jar 包中 | 测试使用 Thread 实例扩展方法 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Groovy】Groovy 扩展方法
- 下一篇: 【Groovy】Groovy 脚本调用