サーブレットコンテナ(Servlet Container)
Web アプリを動かす「土台」
HTTP リクエストを受け取り、登録されたサーブレットに渡す
代表例: Tomcat, Jetty, Undertow
例えると:
町全体 → 「住民(リクエスト)が来たら担当者(サーブレット)に振り分ける建物」
サーブレット(Servlet)
HTTP リクエストを処理する Java クラス
リクエストを受けて、レスポンスを返す
Spring MVC では DispatcherServlet もサーブレットの一種
例えると:
「町の窓口担当者」
住民(リクエスト)が来たら手続きを処理して返事(レスポンス)を返す
DispatcherServlet
Spring MVC の フロントコントローラ
全てのリクエストを一旦受け取り、適切な Controller に振り分ける
主な役割:
URL に基づいて Controller を呼ぶ
Controller の処理結果を View に渡す
View をレンダリングしてレスポンス返却
例えると:
「総合受付窓口」
どの部署(Controller)に回すかを判断
コンテキスト(ApplicationContext)
Spring の IoC コンテナ
Bean の生成・管理・依存関係注入を担当
Web アプリでは
ルートコンテキスト:アプリ全体で共有する Bean(Service, Repository など)
DispatcherServlet の Web コンテキスト:各 DispatcherServlet ごとの Bean(Controller, ViewResolver など)
ContextLoaderListener
サーブレットコンテナ起動時に呼ばれる リスナー
ルートコンテキスト(全体共通のコンテキスト)を作る
作成したコンテキストは DispatcherServlet から参照可能
例えると:
「町全体のインフラを準備する担当者」
町が動き出す前に上下水道や電気を用意するイメージ