Tomcatクラスローダの仕組み
Tomcatのクラスローダ機構は、Tomcatサーバーが稼働中にJavaクラスファイルをロードおよび管理する方法を意味します。主に以下の手順が含まれます:
- ブートストラップクラスローダー:Tomcatの起動クラスローダーであり、Tomcat自身のコアクラス(Catalina、Coyoteなど)をロードする。
- 共通クラスローダー:Tomcatの共通ライブラリディレクトリ(common/lib)にあるクラスファイルをロードするもので、全てのWebアプリケーションで参照できます。
- カタリナクラスローダー: Servlet、バルブ、レルムなどのTomcat組み込みコンポーネントのロードを担当
- 共有クラスローダー:Tomcatの共有ライブラリディレクトリ(shared/lib)にあるクラスファイルをロードし、すべてのWebアプリケーションから参照できる。
- Webアプリケーション固有のクラスローダー:各Webアプリケーションには、Webアプリケーションディレクトリ内のクラスファイルとライブラリファイルをロードする独立したクラスローダーがあり、各Webアプリケーションのクラスローダーは互いに分離されており、相互に認識されません。
このようなクラスローダーメカニズムにより、TomcatはさまざまなWebアプリケーション間のクラス分離とリソース分離を実現し、Webアプリケーションのセキュリティと安定性を向上させています。