SpringMVCのコアコンポーネント
DispatcherServlet - >コントローラー、リクエストエントリ
ハンドマッピング - >コントローラー、リクエスト配布
コントローラー - - >コントローラー、リクエスト処理プロセス
ModelandView --->モデル、ビジネス処理の結果とビューをカプセル化します
ViewResolver --->表示、表示プロセッサを表示します
処理プロセス
ブラウザは、ポンティングのリクエストを発行し、処理のためにフロントエンドコントローラーディスパッチャーサーブレットにリクエストを渡します。
コントローラーは、対応するコントローラーコンポーネントを見つけて、ハンドマッピングを介して要求を処理します。
コントローラーコンポーネントによって合意されたメソッドを実行してリクエストを処理し、モデルコンポーネントを呼び出してコンベンションメソッドのビジネス処理を完了します。コンベンションメソッドは、ModelandViewオブジェクトを返すことができます。これにより、ビジネス処理結果データをカプセル化し、名前情報を表示できます。
コントローラーがModelandViewを受信した後、ViewResolverコンポーネントを呼び出し、ビュー(JSP)を見つけ、情報を渡して応答インターフェイス結果を生成します。
コメント構成には、XML構成よりも多くの利点があります。
Javaの反射メカニズムを最大限に活用して、クラス構造情報を取得することができ、構成作業を効果的に削減できます。 JPAアノテーションを使用してORMマッピングを構成する場合、POの属性名、タイプ、およびその他の情報を指定する必要はありません。関係テーブルフィールドとPO属性名とタイプが同じ場合、この情報はJava反射メカニズムを介して取得できるため、タスク属性情報を記述する必要さえありません。
コメントとJavaコードは同じファイルにあり、XML構成は独立した構成ファイルを使用します。ほとんどの構成情報は、プログラムが開発された後に調整されません。構成情報とJavaコードがまとめられている場合、プログラムの結束を強化するのに役立ちます。独立したXML構成ファイルを使用して、プログラマーは、関数を書くときにプログラムファイルと構成ファイルを切り替える必要があることがよくあります。この思考の矛盾は、開発効率を低下させます。
コントローラーコンポーネント
コントローラーコンポーネントは、特定のビジネス処理を実行する責任があり、執筆中にコントローラーインターフェイスと合意された方法を実装する必要があります。
ModelandViewコンポーネント
コントローラーコンベンションコンポーネントは、モデルとビジネスの結果モデルデータをカプセル化し、情報を表示するModelandViewオブジェクトを返します。
ModelandViewコンストラクターは次のとおりです。
-ModelandView(StringViewName)
-ModelandView(StringViewName、MapModel)
ViewNameはJSPページの名前であり、モデルのデータはリクエスト属性に保存されます
ハンドマッピングコンポーネント
Handermappingコンポーネントを介して、DispatcherServletコントローラーはHTTP要求をコントローラーコンポーネントにマッピングできます。
-simpleuserhandlermappingリスト通信関係に従ってコントローラーを呼び出すために、HTTPリクエストとコントローラーマッピング関係(MAP)を維持します。
SimpleUserHandLermapping
<bean> <Property name = "Mappings"> <props> <prop key = "/login.form"> logincontroller </prop> <props> </prop key = "/hello.form"> hellocontroller </prope> </bean> <bean id = "hellocontroller" />
上記のSimpleUserhandLermappingタグのHelloControllerは、以下のBeanタグのHelloControllerであるコンポーネントに対応しています。
RequestMappingHandLermapping
ResquestMappingHandlerAdapter
コントローラークラスとメソッドで@resquestMappingアノテーションを使用して、対応するクライアントHTTPリクエストを指定します。
ViewResolverコンポーネント
すべてのコントローラーコンポーネントモデルアンドビューインスタンスを返し、ビュー名をカプセル化し、春のビューは名前で識別され、ビューResolver ViewResolverは名前を介してビューを解決します。
InternalResourceViewResolverラップサーブレットとJSP、例を使用して:
<bean id = "jspviewresolver"> <プロパティ名= "prefix" value = "/web-inf/jsp/"/> <プロパティname = "suffix" value = "。jsp"/> </bean>
例:ビュー名Helloは、上記の構成を介して/web-inf/hello.jspにマッピングできます
コントローラー注釈
通常、@Controllerアノテーションを使用してコントローラーコンポーネントを宣言します。これにより、柔軟性が高まり、以前のようにコントローラーインターフェイスを実装する必要はありません。
@controllerpublic class hellocontroller {public string execute(){return "hello"; }}上記の注釈を使用するための前提条件があります。これは、注釈スキャンを可能にするためです。
<コンテキスト:component-scanベースパッケージ= "org.test.controller">
ベースパッケージは、コントローラーコンポーネントが配置されているパッケージを書き込みます。
resquestmapping annotation
Resquestmappingは、このクラスまたはメソッドがどのリクエストに対応するかを示します。
@Controller @ResquestMapping( "/test1")パブリッククラスHellocontroller {@resquestMapping( "/hello.form")public string helloexecute(){return "hello"; }}RequestMappingを使用する必要がある場合は、たとえば(スプリングバージョン3.1で定義する必要があります)(クラス定義の前)とRequestMappingAdapter(クラス定義の前)とRequestMappingAdapter(クラス定義の前)とRequestMappingHandLermappingの2つのBeanコンポーネントを定義する必要があります。
<bean/> <bean/>
Spring 3.2バージョンを定義する必要はありません
<MVC:Annotation-driven/>
要約します
上記は、この記事の春に関するメモの簡単な紹介であり、誰にとっても役立つことを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!