5

簡単な質問は次のとおりです。新しいコードがホットコンパイルされてスワップインされるたびに、Grails 2.2 開発サーバーを強制的にリロード (すべてのシングルトン サービスの再初期化など) させることはできますか?

例を挙げて質問を明確にしましょう。そう言いましょう

  1. というシングルトン スコープのサービスがありMyServiceます。その@PostConstruct関数では、型の新しいオブジェクトを初期化しますHelper(そして参照を保持します)。

  2. run-appは開発モードでテストを行い、その後...

  3. のソースコードを編集しますHelper.groovy

次に起こることは次のとおりです。

  • Grails は自動的に再コンパイルしますHelper.groovy
  • Grails は新しいコードを実行中の開発サーバーにスワップします
  • ただし、既にインスタンス化されたオブジェクトは古い種類のインスタンスのハンドルを既に持っているため、新しいHelperコードは呼び出されません。MyService

私の現在の回避策は、依存関係グラフを頭に入れておくか、その依存関係の 1 つを変更するたびに簡単に変更することtouchMyServiceです。しかし、新しいコードがスワップインされるたびに、開発サーバーを強制的に完全にリロードしたいと思います。

それで...コードが変更されるたびに開発サーバーを強制的にリロードすることは可能ですか?

おまけの質問: ドメイン オブジェクトを変更するとき、開発サーバーにこれらの変更を強制的に "追従" させる唯一の方法は、、、、stop-appおよびclean手動run-appです。必要なときにいつでもこれを自動化できますか?

ありがとう!

4

1 に答える 1