Spring MVCの - > springboot
- コンフィギュレーション
1.設定
MVC:
- ばねコンテナ設定:のapplication.xml、web.xmlが他のビーンコントローラのスキャンに加え、のContextLoaderListenerに対応
- ServletContextの構成:servlet.xml、DispatcherServletのweb.xmlに対応
- ばね負荷コンテナ:同等の構成のweb.xml(servlet3.0)、WebApplicationInitializerを達成するためのインタフェース限りスプリングので、AbstractAnnotationConfigDispatcherServletInitializer継承された、ばねがロードされたすべての
戦闘春ブーツ2.0シリーズ(5) - リスナー、サーブレット、フィルタとインターセプタ - デンバー
- リスナー
- サーブレット
- フィルタ
- コントローラ
- 迎撃機
1.リスナー
ServletContextリスナを設定するには、@WebListenerマークを使用することができます。サーブレットコンテナの初期化処理では、contextInitialized()メソッドは、容器がcontextDestroyed(破壊された場合、)呼び出されると呼ぶことにします。
ここでのServletContextのコンテキストパラメータ名INITIAL_CONTENTに設定初期化中の容器は、直接のアクセスは、グローバルすることができます。
2.サーブレット
IndexHttpServlet構成、書き換えのdoGetのHttpServlet()メソッド、直接出力IndexHttpServletのServletContext初期化定義されたパラメータとIndexServletContextListenerコンテキストパラメータのセット。
注釈は、サーブレット、対応する各パラメータの注釈@ WebServlet web.xmlの設定を登録するように構成@WebServlet
3.フィルター
サーブレットは、クライアントのサーブレット応答によってフィルターを通して濾過した複数の、および最終処理を要求することができます。ここで構成された2つの例示的なフィルタ
設定FirstIndexFilterは、使用@WebFilterノートがマークしました。場合FirstIndexFilter初期化を行うinit()メソッド。各タイムリクエスト経路マッチングパスurlPatterns構成は、特定の要求に応じてのdoFilter()メソッドを入力し、濾過します。
HTTPリクエストは、フィルタ1つのパラメータを有する場合、要求が解除され、そうでない場合は、直接濾過割り込み、停止要求処理
設定SecondIndexFilterは、使用@WebFilterノートがマークしました。場合SecondIndexFilter初期化を行うinit()メソッド。各タイムリクエスト経路マッチングパスurlPatterns構成は、特定の要求に応じてのdoFilter()メソッドを入力し、濾過します。
HTTPリクエストは、フィルタ2つのパラメータを有する場合、要求が解除され、そうでない場合は、直接濾過割り込み、停止要求処理。
doFilter()三つのパラメータの中核を見てみましょう:
- ServletRequest:HTTPサーブレットリクエストが到着しません。
- たServletResponse:サーブレットと生成されたHTTPレスポンスによって処理;
- フィルターチェーン:フィルタ・チェーン・オブジェクトを順次複数のフィルタを登録することができます。
FilterChain.doFilter(request, response);
4.コントローラ
これは、およそ...ビジネスの入り口の話に何もありません。
5.インターセプタ
インターセプタインターセプタは、唯一のハンドラで動作します。スプリングMVCコントローラハンドラオブジェクトに各インスタンスのメソッドを要求し、オブジェクト要求は、特定HandlerMappingハンドラにルーティングされ、その後、反射によってHandlerAdapterの処理要求に応じて、この中間傍受プロセスが点在します。
原理分析
私たちは、インタフェースHandlerInterceptor 3の重要な方法を見てみましょう、インターセプタを開発するHandlerInterceptorインターフェースを実現します:
- preHandle():postHandle次に、前処理要求を実行する、要求制御を受けて行われ、戻り値はブール値であり、戻り値がtrue()およびafterCompletion()メソッドは、戻りの偽割り込みが実行された場合。
- postHandle():処理実行のModelAndView前に要求を処理するコントローラ後、その結果に応じて変更することができます。
- afterCompletion():DispatchServletこの要求の処理が完了した後に行われる、すなわちのModelAndViewが発生しました。
この方法のdoDispatch()実行順序原理のSpring MVCの中央ディスパッチャのDispatcherServletで簡単に見ているの後に、上記の3つの方法が迎撃に焦点を当てます。
Spring MVCの中央ディスパッチャで簡単に見ている、次のDispatcherServlet方法のdoDispatch()実行順序原理の、上記の3つの方法が迎撃に焦点を当てます。