SpringでHotdeploy その2
Springは内部で色々とキャッシュを持っているので、Hotdeployするためにはそれを無効化する方法を考えなくてはいけません。
と言っても、ゼロから調査するのは大変なので、先人の知恵を拝借。ひがさんのところでも紹介されていた以下のOSSを参考にしました。
JavaRebel Spring integration plugin
こいつは、Javarabelという動的クラスローディングライブラリーのプラグインだし、内部ではJavassistを利用してクラスファイルを動的に変更しているという、ある意味、最先端?方法でHotdeployを実現しています。
でも、この方法だとHotdeployのON/OFFとか制御が自分でできないし、なんだか邪道な気がするので、普通にXmlWebApplicationContextを継承して、拡張する方法を選択します。
というわけで、準備が整ったので実装は次から1つずつ書いていきます。