
私たちの多くは、Java HotSpot VM Swapメカニズムの存在を認識しています。これにより、ホットスワップを行い、アプリケーションサーバー全体の再起動を回避できます。

IntelliJ IDEAでは、キーボードショートカットを使用できます(:Command + Shift + F9 /⊞:Ctrl + Shift + F9)
Javaの現在の制限により、HotSpotでは、既存のクラスメソッドの本体を変更するためにのみこれを行うことができます。 その他の場合、変更されたクラスは「ホットスワップ」中に更新されません。

この制限を克服するために、動的コード進化仮想マシン( DCEVM ) -Java HotSpot(TM)VMの修正を使用できます。これにより、リアルタイムで無制限の「ホット」クラス置換を行うことができます。
特にSpringなどのさまざまなフレームワークを使用する場合は、単にクラスを置き換えるだけでは不十分な場合があります。 そのような場合、いずれかのフレームワークの「ライフサイクル」を考慮する必要があります。 この問題をDCEVMと一緒に解決するには、特別なHotSwapAgentエージェントを使用できます。これにより、ホットスワップ機能が拡張され、お気に入りのIDEとの統合が簡単になります。
IntelliJ IDEAと統合するには:
1.特別なHotSwapAgent プラグインをインストールします 。

2. HotSwapセクションで、IntelliJ IDEAの「コンパイル後のクラスの再ロード:常に」構成を設定します。

3.プラグインを使用すると、プロジェクト全体または特定の構成に対してHotSwapAgentエージェントをアクティブ化できます。

4.設定が成功すると、起動時に「HOTSWAP AGENT」というメッセージがコンソールに表示されます。

5. 「ホットスワップ」では、変更されたクラスをコンパイルする必要があります。そのためには、キーの組み合わせを使用します(:Command + Shift + F9 /⊞:Ctrl + Shift + F9)。
視覚的なプレゼンテーションの例:
シナリオ1:クラスメソッドの本体を変更します。

シナリオ2:クラス内にメソッドを追加し、コントローラーを変更します。

素晴らしい「 ホット 」な開発を!
参照:
IntelliJ IDEAの HotSwap プラグイン 、 HotSwapAgentプロジェクト 、 DCEVM