2011-08-01 76 views
5

在Groovy應用程序中,如果您想初始化元類,那麼最適合放置這些初始化的地方在哪裏?在Grails應用程序中,我使用了Bootstrap.groovy文件。是否有類似的任意Groovy應用程序?何處正確初始化Groovy元類?

編輯:爲了澄清,我正在尋找一種非侵入性的方式來保證它在運行主應用程序時以及在相關代碼的單元測試中被調用。

回答

8

有沒有像BootStrap.groovy中的標準常規應用的,但這並不能阻止你做你的應用程序同樣的事情,有一個被稱爲一次在啓動類或方法,您可以添加元類初始化


增加從下面的評論

你可以寫一個DelegatingMetaClass每個要裝飾類,並將其放置在包groovy.runtime.metaclass.[YOURPACKAGE].[YOURCLASS]MetaClass

This page explains the steps required要做到這一點(頁面上的第二項)

+0

有沒有一種非侵入性的方式來做到這一點,以確保它在運行主應用程序時以及在相關代碼的單元測試中被調用? –

+1

@Alan你可以爲你想裝飾的每個類編寫一個DelegatingMetaClass,並把它放在包'groovy.runtime.metaclass。[YOURPACKAGE]。[YOURCLASS] MetaClass' [這個頁面解釋完成這個步驟所需的步驟]( http://groovy.codehaus.org/Using+the+Delegating+Meta+Class)(頁面上的第二項) –

+0

@tim IMO,上面的評論應該被移到答案本身 –