Tomcatの中でClass Loaderはどのように機能するのか。
TomcatのClass Loaderは、Webアプリケーション内のクラスの読み込みと管理を担当しています。Tomcatは階層構造のClassLoaderを使用しており、この構造には複数のClassLoaderインスタンスが含まれており、それぞれが異なるクラスの読み込みを担当しています。
WebアプリケーションがTomcatにデプロイされると、TomcatはそのWebアプリケーション用のクラスローダーを作成します。このクラスローダーは、サーブレットクラスやフィルタークラスなど、アプリケーション内のクラスファイルをロードします。
トムキャットでは、クラスローダー間は委任メカニズムを使って協力します。クラスがロードされる必要がある場合、トムキャットは最初にアプリケーションレベルのクラスローダーによってそのクラスをロードしようとします。アプリケーションレベルのクラスローダーがそのクラスを見つけられない場合、トムキャットは親クラスローダーに段階的に委任し、最終的にシステムレベルのクラスローダーによってロードされます。
この委任メカニズムにより、異なるWebアプリケーション間のクラスファイルが互いに干渉しないことが保証され、共有されているクラスが一度だけロードされることも保証されます。この方法により、Tomcatはクラスのロードの隔離と管理を実現しています。