2011-08-01 11 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)(ページの2番目の項目) –

+0

@tim IMO、上記のコメントは回答自体に移動する必要があります –

関連する問題