ホームページ >Java >&#&チュートリアル >Spring MVCプロジェクト開始後の実行手順(模式図付き)
この記事の内容は Spring MVC プロジェクト開始後の実行手順です (回路図付き)。必要な方は参考にしていただければ幸いです。
Spring MVC プロジェクト開始後の実行プロセス:
1. 実行プロセス:
01. Web プロジェクトが開始されたら、以下を含む web.xml ファイルを読み込みます。コア構成ファイル
mvc のコア コントローラーは web.xml ファイルで設定されているため、このコントローラーは初期化されます。たとえば、ユーザーのリクエスト パスは localhost:8080/ です。 hello
このとき、/hello はリクエスト パスとみなされます ====》コア設定ファイルの Bean の ID
03./hello は、コア コントローラーにアクセスし、プロセッサ マッパー (HandlerMapping)
04 に移動します。最下層は最初に適切な HandlerMapping を見つけて、プロセッサ実行チェーン (HandlerExecutionChain)
05 を返します。実行されようとしているコントローラーと (1-N Interceptor)
06. プロセッサー実行チェーンのハンドラーに従って HandlerAdapter を検索します。
07.HandlerAdapter は、指定されたメソッドを実行します。コントローラーのタイプ
08.メソッドの実行後、ModleAndView
Modle ==》Map
View ==》String
09を返す必要があります。ビュー パーサーが設定されている場合、ビューは実際にはロジック ビュー名です。
#ビュー パーサーが設定されていない場合、ビューには値がありません。物理ビュー名である必要があります回路図:2 基礎となるコードを表示します
01. web.xml ファイルのコア コントローラーをクリックします。#02. Ctrl o 対応するメソッド doDispatch
03 コードの分析を開始します。 #04. 次のコードを見つけます
protected void doDispatch(HttpServletRequest request, HttpServletResponse response) HttpServletRequest processedRequest = request; //请求对象 HandlerExecutionChain mappedHandler = null; //处理器执行链=我们即将执行的Controller+(1+拦截器) boolean multipartRequestParsed = false; //解析一个请求是否是文件上传请求
要求に従って実行する必要があるハンドラー (コントローラー) を見つけます
Ctrl マウスの左ボタンをクリックして getHandler() を実行します。このメソッドの値はプロセッサ実行チェーンです。 05. getHandler を入力した後、次のコード// Determine handler for the current request. mappedHandler = getHandler(processedRequest);06 を見つけます。引き続き hm.getHandler(request)
を入力すると、このメソッドがインターフェイス (HandlerMapping にはメソッドを実装するメソッドがありません)。引き続き、実装クラス AbstractHandlerMapping
HandlerExecutionChain handler = hm.getHandler(request);08 を中断します。取得したプロセッサが実行されていることがわかります。チェーンによってコア コントローラーが提供されます
Object handler = getHandlerInternal(request);クリックして getHandlerAdapter() を入力します。 09. 次のコード ブレーク ポイントを見つけます
// Determine handler adapter for the current request. HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler());10クリックして「supports() 」と入力します。supports() がインターフェース内にありますが、Springmvc はデフォルトで 3 つを実行します。 #しかし、私たちが書いた HelloController はコントローラー インターフェイスを間接的に実装したので、SimpleControllerHandlerAdapter のポイントを壊すだけで済みます。 12. 取得した HandlerAdapter をコア コントローラーに返します。13. コア コントローラー内のプロセッサ アダプターを使用して、次のステップでは実際のコード
if (ha.supports(handler)) { return ha; }を実行します。クリックして handle
// Actually invoke the handler. mv = ha.handle(processedRequest, response, mappedHandler.getHandler());
と入力します。 15. クリックして handleRequest
を入力し、HelloController がこのクラスを継承します。
この親クラスは handleRequestInternal(request, response);
16 を実行します。handleRequestInternal
をクリックすると、実装クラス
@Override public ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { return ((Controller) handler).handleRequest(request, response); }が見つかります。
以上がSpring MVCプロジェクト開始後の実行手順(模式図付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。