Open7
spring mvcのアーキテクチャ
アーキテクチャ理解する!
- DispatcherServletが、リクエストを受け取る。
- DispatcherServletは、リクエスト処理を行うControllerの選択をHandlerMappingに委譲する。HandlerMappingは、リクエストURLにマッピングされているControllerを選定し(Choose Handler)、 ControllerをDispatcherServletへ返却する。
- DispatcherServlet は、Controllerのビジネスロジック処理の実行をHandlerAdapterに委譲する。
- HandlerAdapter は、Controllerのビジネスロジック処理を呼び出す。
- Controllerは、ビジネスロジックを実行し、処理結果をModelに設定し、ビューの論理名をHandlerAdapterに返却する。
- DispatcherServletは、ビュー名に対応するViewの解決を、ViewResolverに委譲する。ViewResolverは、ビュー名にマッピングされているViewを返却する。
- DispatcherServletは、返却されたViewにレンダリング処理を委譲する。
- Viewは、Modelの持つ情報をレンダリングしてレスポンスを返却する。
委譲とは
- プログラミングにおける委譲(delegation)は、オブジェクト指向プログラミングの設計パターンの一つで、あるオブジェクトが自身の責任を他のオブジェクトに委譲する手法です。
オブジェクト内で他のオブジェクトのメソッド呼ぶってこと...かな?
spring bootが提供してくれてるのは、レスポンス受けてから特定のcontrollerに処理を流すのと、viewへレンダリング処理流してくれるやつかな?
あれ、spring bootとspring mvcって別物か?
Spring Bootは、Springベースのアプリケーションを迅速に構築し、簡単に実行できるように設計されたフレームワークです。主な目的は、開発者が最小限の設定でSpringアプリケーションをすばやく立ち上げられる点です。
一方で、Spring MVCは、主にウェブアプリケーションの開発に特化したフレームワークです。Model-View-Controllerアーキテクチャを実装し、ウェブアプリケーションの要求に対応するための多くの機能を提供してくれます。