簡単な質問は次のとおりです。新しいコードがホットコンパイルされてスワップインされるたびに、Grails 2.2 開発サーバーを強制的にリロード (すべてのシングルトン サービスの再初期化など) させることはできますか?
例を挙げて質問を明確にしましょう。そう言いましょう
というシングルトン スコープのサービスがあり
MyService
ます。その@PostConstruct
関数では、型の新しいオブジェクトを初期化しますHelper
(そして参照を保持します)。私
run-app
は開発モードでテストを行い、その後...のソースコードを編集します
Helper.groovy
次に起こることは次のとおりです。
- Grails は自動的に再コンパイルします
Helper.groovy
- Grails は新しいコードを実行中の開発サーバーにスワップします
- ただし、既にインスタンス化されたオブジェクトは古い種類のインスタンスのハンドルを既に持っているため、新しい
Helper
コードは呼び出されません。MyService
私の現在の回避策は、依存関係グラフを頭に入れておくか、その依存関係の 1 つを変更するたびに簡単に変更することtouch
MyService
です。しかし、新しいコードがスワップインされるたびに、開発サーバーを強制的に完全にリロードしたいと思います。
それで...コードが変更されるたびに開発サーバーを強制的にリロードすることは可能ですか?
おまけの質問: ドメイン オブジェクトを変更するとき、開発サーバーにこれらの変更を強制的に "追従" させる唯一の方法は、、、、stop-app
およびclean
手動run-app
です。必要なときにいつでもこれを自動化できますか?
ありがとう!