簡體   English   中英

Groovy腳本運行器體系結構

[英]Groovy script runner architecture

初始信息:我有一個時髦的應用程序(我們稱它為Runner ),它能夠運行實現某些接口的任何東西(我們稱其為Runnable )。 而且我有一個Runnables (常規腳本)池,該池在初始化階段對此應用程序可見,並且將調用該應用程序(通過接口並將對象作為參數傳遞)。

任務:我需要的是一種從Runner加載並調用所有Runnable的方法。

要求:這很棘手,因為腳本可能不遵循某些程序包結構,並且可以與Runner放置在同一台計算機上,但實際上可以放置在任何地方。 它們的名稱也可以不同(關於強制性Java的類似命名的公開討論:類名==文件名),現在可以跳過(盡管如果有建議,那就太酷了!)。

注意:我想通過在其中配置腳本(提供絕對路徑)的配置文件並使用此東西加載它們,然后將Object 強制轉換Runnable接口並觸發我需要的方法或invokeMethod(...),就可以實現 但是不知道是否可以更輕松地完成(應該有一種方法,因為它看起來太笨拙)。 我也想不出一種方法來處理文件命名問題和一個文件問題中的多個類。

PS:這么長的描述可能會引起誤解,因此請對模糊的部分進行評論。

我認為您需要了解實現接口的所有類。 查找實現接口的Java類可能會讓您感興趣。

具有在其中寫入腳本的絕對路徑的配置文件的選項很好,並且被證明是可行的解決方案。 您必須處理應用程序類加載器中不可見的任何類的類加載。 特別是,您必須處理基於注釋的POJO序列化問題。 Singlenable Runnable加載程序是一個好習慣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM