SpringMVCとは
SpringMVCはSpringFrameworkの一部であり、Javaに基づくMVCを実装する軽量のWebフレームワークです。
公式文書を見る
なぜSpringMVCを学ぶ必要があるのですか?
Spring MVCの機能:
-
軽量で習得が容易
-
効率的な要求応答ベースのMVCフレームワーク
-
Springとの良好な互換性、シームレスな統合
-
コンベンションは構成よりも優れています
-
強力な機能:RESTful、データ検証、フォーマット、ローカリゼーション、テーマなど。
-
シンプルで柔軟な
SpringのWebフレームワークは、DispatcherServlet [ディスパッチサーブレット]を中心に設計されています。
DispatcherServletの役割は、リクエストをさまざまなプロセッサに分散することです。Spring 2.5以降、Java 5以降を使用するユーザーは、注釈の形式で開発できるようになりました。これは非常に簡潔です。
これは、SpringMVCが優れていて、シンプルで、便利で、習得が容易で、Springとシームレスに統合されているため(SpringIoCとAopを使用)、設定よりも規則を使用する方が優れています。単純なjunitテストを実行できます。Restfulスタイルをサポートします。例外処理、ローカリゼーション、国際化、データ検証、型変換、インターセプターなど...だから私たちは学ぶ必要があります
中央制御装置
Spring MVCフレームワークは、他の多くのMVCフレームワークと同様に、リクエスト駆動型であり、リクエストをディスパッチし、中央サーブレットの周りに他の関数を提供します。DispatcherServletは実際のサーブレットです(HttpServlet基本クラスから継承します)。
SpringMVCの原理を次の図に示します。
当发起请求时被前置的控制器拦截到请求,根据请求参数生成代理请求,
找到请求对应的实际控制器,控制器处理请求,创建数据模型,访问数据库,
将模型响应给中心控制器,控制器使用模型与视图渲染视图结果
,将结果返回给中心控制器,再将结果返回给请求者。
SpringMVC実行原理
用户发起请求,请求会经过一个前端控制 DispatcherServlet,DispatcherServlet根据请求到找到处理映射
器 HandleMapper,HandleMapper根据url会找到具体的HandleExecution,HandleExecution会从url中查找出
适配器,并将其返回给DispatcherSevlet,DispatcherSerlet将设配器交给HandlerAdapter适配对应的
Controller,在Controller中调用业务层,在ModleAndView中添加数据,并将其返回给
HandlerAdapter,HandlerAdapter就将其返回给DispatcherServlet,DispatcherServlet将ModelAndView交给
视图解析器ViewResolver处理,将数据渲染到前端页面上,视图解析器ViewResolver 再将解析的视图返回给DispatcherSerlet,将其绘制在前端。
写真はSpringMVCの比較的完全なフローチャートを示しています。実線はSpringMVCフレームワークによって提供されるテクノロジーを表しており、開発者が実装する必要はありません。点線は開発者が実装する必要があることを表しています。
実行プロセスを簡単に分析する
DispatcherServletはフロントコントローラーを表し、SpringMVC全体のコントロールセンターです。ユーザーがリクエストを送信すると、DispatcherServletがリクエストを受信し、リクエストをインターセプトします。
要求されたURLは次のとおりであると想定しています:http:// localhost:8080 / SpringMVC / hello
上記のURLは3つの部分に分かれています。
http:// localhost:8080サーバードメイン名
SpringMVCはサーバー上のWebサイトに展開されます
テストはコントローラーを意味します
分析により、上記のURLは次のように表されます。サーバーlocalhost:8080上のSpringMVCサイトのhelloコントローラーを要求します。
HandlerMappingは、プロセッサマッピングです。DispatcherServletはHandlerMappingを呼び出し、HandlerMappingはリクエストURLに従ってハンドラーを見つけます。
HandlerExecutionは特定のハンドラーを表します。その主な機能は、URLに従ってコントローラーを見つけることです。上記のURLでコントローラーが検索されます:hello。
HandlerExecutionは、コントローラーマッピングの解析など、解析された情報をDispatcherServletに渡します。
HandlerAdapterは、特定のルールに従ってハンドラーを実行するプロセッサーアダプターを表します。
ハンドラーは、特定のコントローラーを実行させます。
Controllerは、ModelAndViewなどの特定の実行情報をHandlerAdapterに返します。
HandlerAdapterは、ビューの論理名またはモデルをDispatcherServletに渡します。
DispatcherServletは、ビューリゾルバー(ViewResolver)を呼び出して、HandlerAdapterによって渡された論理ビュー名を解決します。
ビューリゾルバーは、解決された論理ビュー名をDispatcherServletに渡します。
DispatcherServletは、ビューパーサーによって解析されたビューの結果に従って特定のビューを呼び出します。
最終的なビューがユーザーに表示されます。