3

単純なサーブレット アプリケーションを作成する場合、サーブレット クラスで http サーブレットを拡張します。これにより、コンテナは私のクラスがサーブレットであることを認識し、サーブレットの「ライフサイクル」を管理します。init、doget()、destroy() など。

ただし、Spring MVC フレームワーク コントローラー クラスはサーブレット クラスを拡張しません。これは、独自のカスタム メソッドを備えた POJO です。これで、Requestmapping を使用してこれらのメソッドを個別に呼び出すことができます。

しかし、このスプリング コントローラ クラスは、サーブレットのライフサイクルが管理されるのと同じ方法でコンテナによって「管理」されるのでしょうか?

4

1 に答える 1

3

しかし、このスプリング コントローラー クラスは、サーブレットのライフサイクルが管理されるのと同じ方法でコンテナーによって「管理」されるのでしょうか?

直接ではありません。次に、Spring MVC アプリケーションのエントリ ポイントは通常、DispatcherServlet*. このクラスは (直接ではなく、継承によって) 拡張されHttpServletます。Servlet他の と同じように、通常は で宣言しますweb.xml

ただし、それ自体は宣言しません。リクエストを処理するために使用するアノテーション付きクラスを取得できるSpringApplicationContextを提供します。DispatcherServlet@Controller

ハンドラー スタックはDispatcherServletかなり大きいです。多くのコンポーネントが関係しています。公式の Spring MVC は優れたドキュメントです。あなたはそれを読むべきです。

*たとえば、Spring が他のハンドラーを提供するため、私は一般的に言いますHttpRequestHandler


追加資料:

  1. Spring MVC とサーブレット 3.0 - まだ web.xml が必要ですか?
  2. Spring MVC アプリケーションを Eclipse の外部で tomcat にデプロイする舞台裏で何が起こっているのですか?
  3. Springの@Component、@Repository、および@Serviceアノテーションの違いは何ですか?
  4. Spring MVC: <context:component-scan> と <annotation-driven /> タグの違いは?
  5. <context:annotation-config> と <context:component-scan> の違い
  6. ContextLoadListener と DispatcherServlet
于 2013-10-07T23:21:05.120 に答える