2012-01-06 10 views
3

私はいくつかのビジネスオブジェクトでランタイムバイトコード操作をしていますが、正しい順序でロードすることが非常に重要です。現在、私はStartupサーブレットの正しい順序でClass.getSimpleName()を呼び出すだけです。これはうまくいきましたが、より良い方法があれば、私はすべて耳にします。Tomcatでサーブレットクラスを読み込む前にコードを実行できますか?

しかし、具体的なビジネスオブジェクト型を返すために、私のサーブレットフィルタの1つにメソッドが必要です。これは、クラスローダーが特定のビジネス・オブジェクト・クラスを最初に(不注意に)ロードし、事態が壊れる原因になります。私が好きな何

は()私のサーブレットまたはフィルタのいずれかにロードされる前をハック私getSimpleNameを実行できるようにすることです。クラスローダーが自分のフィルターをロードする前に実行されるコードを置くことができる場所はありますか?

答えて

1

tomcatクラスローダは、この方法で動作します。

enter image description here

あなたは、あなたはjarファイルにこれらのクラスを入れて、Tomcatの共通ライブラリにそれを展開することができ、これらのクラスは、前にロードされ、あなたの任意のWebアプリクラスのロードの前に任意のクラスをロードする場合Webアプリケーションクラスはクラスローダーによってロードされます。

apache tomcatクラスローダーの動作のドキュメントを確認できますhere

関連する問題