第5回 Javassistを使用してロード時にクラスを変更する方法を学ぶ

http://www-6.ibm.com/jp/developerworks/java/040326/j_j-dyn0203.html

こちらはオンザフライでの書き換えの説明。クラスローダーとしてJavassistを利用し、Observerが必要なフックを組み込む(ClassPoolをアプリケーションクラスローダーにするが、便利メソッド一発でできる)。