クラス FrameworkServlet

実装されたすべてのインターフェース:
ServletEEServletConfigEESerializableSEAwareApplicationContextAwareEnvironmentAwareEnvironmentCapable
既知の直属サブクラス
DispatcherServlet

public abstract class FrameworkServlet extends HttpServletBean implements ApplicationContextAware
Spring の Web フレームワークのベースサーブレット。JavaBean ベースの全体的なソリューションで、Spring アプリケーションコンテキストとの統合を提供します。

このクラスは、次の機能を提供します。

  • サーブレットごとに WebApplicationContext インスタンスを管理します。サーブレットの構成は、サーブレットの名前空間の Bean によって決定されます。
  • リクエストが正常に処理されたかどうかに関係なく、リクエスト処理時にイベントを発行します。

サブクラスは、リクエストを処理するために doService(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse) を実装する必要があります。これは HttpServlet を直接拡張するのではなく HttpServletBean を継承するため、Bean プロパティが自動的にそれにマップされます。サブクラスは、カスタム初期化のために initFrameworkServlet() をオーバーライドできます。

サーブレットの init-param レベルで "contextClass" パラメーターを検出し、見つからない場合はデフォルトのコンテキストクラス XmlWebApplicationContext にフォールバックします。デフォルトの FrameworkServlet では、カスタムコンテキストクラスが ConfigurableWebApplicationContext SPI を実装する必要があることに注意してください。

1 つ以上の ApplicationContextInitializer クラスを指定するオプションの "contextInitializerClasses" サーブレット init-param を受け入れます。管理された Web アプリケーションコンテキストはこれらの初期化子に委譲され、追加のプログラムによる構成が可能になります。プロパティソースの追加またはコンテキストの環境に対するプロファイルのアクティブ化。「ルート」Web アプリケーションコンテキストと同一のセマンティクスで "contextInitializerClasses" context-param をサポートする ContextLoader も参照してください。

"contextConfigLocation" サーブレットの init-param をコンテキストインスタンスに渡し、「test-servlet.xml、myServlet.xml」のように、任意の数のカンマとスペースで区切ることができる複数のファイルパスに解析します。明示的に指定されていない場合、コンテキスト実装は、サーブレットの名前空間からデフォルトの場所を構築することになっています。

メモ: 複数の構成場所がある場合、少なくとも Spring のデフォルトの ApplicationContext 実装を使用している場合、後の Bean 定義は以前にロードされたファイルで定義された定義をオーバーライドします。これを利用して、追加の XML ファイルを介して特定の Bean 定義を意図的に上書きできます。

デフォルトの名前空間は " 'servlet-name'-servlet" です。例: サーブレット名 "test" の "test-servlet" (XmlWebApplicationContext で "/WEB-INF/test-servlet.xml" のデフォルトの場所になります)。名前空間は、「名前空間」サーブレットの init-param を介して明示的に設定することもできます。

FrameworkServlet には、内部で独自のコンテキストを作成するのではなく、Web アプリケーションコンテキストを挿入することができます。これは、サーブレットインスタンスのプログラムによる登録をサポートする Servlet 3.0+ 環境で役立ちます。詳細については、FrameworkServlet(WebApplicationContext) Javadoc を参照してください。

作成者:
Rod Johnson, Juergen Hoeller, Sam Brannen, Chris Beams, Rossen Stoyanchev, Phillip Webb
関連事項: