SpringMVCの顔の質問
SpringMVC?SpringMVCのご理解の簡単な紹介は何ですか?
SpringMVCは、明らかに、論理セクションに複雑なWebアプリケーション、ウェブ層を分離するためのモデル、ビュー、コントローラの機能によって分離されたMVC設計パターン軽量Webフレームワークタイプを駆動するための要求のJavaベースの実装であります開発者の内側のグループとの係合を容易にするため、エラーを削減、開発を簡素化
SpringMVCプロセス
- ユーザーは、フロントエンドコントローラDisparcherServlerに要求を送信します
- DisparcherServlet要求を受け、HandlerMappingプロセッサマッパーを呼び出して、要求ハンドル
- プロセッサマッパーURLはDisparcherServletに戻って一緒に(生成された場合)オブジェクトとプロセッサブロッカーを生成し、要求に応じて特定のプロセッサを探し
- DispartcherServletコールHandlerAdapterプロセッサアダプタ
- 特定のプロセッサを介してHandlerAdapterアダプタコール(ハンドラ)
- ハンドラは、完全なリターンのModelAndViewを行います
- モデルのModelAndViewのHandlerAdapter結果がDispartcherServletに戻りました
- DispartcherServletのModelAndViewパスViewResolverビューパーサーパース
- 分析ViewAResokverは「後方に特定のビューを返さ
- ビュー(すぐに表示する満たされたビューモデル)をレンダリングするためのDispatcherServletを見ます
- ユーザーをDispartcherServlet
SpringMVCの利点
- テクノロジーは、ビューの様々なサポートが、JSPに限定することはできません
- スプリングフレームワーク(例えばIOC容器.AOPなど)との統合」
- 明確な役割の割り当て:フロントエンドコントローラ(DispartcherServlet)は、プロセッサ(handlerMapping)に要求をマッピングする、アダプタプロセッサ(HandlerAdapter)、ビューリゾルバ(ViewResolver)。
- これは、リソースマッピングポリシー要求の多様性をサポートしています
SpringMVC の主要コンポーネント
- フロントコントローラDispartcherSerlver(プログラマが開発する必要がありません)
処置:要求、対応する結果を受け取るDisparcherServletと、トランスポンダに対応する他の構成要素との間の結合の程度を減少させます。
- プロセッサマッパー(HandlerMapping)(開発するプログラマを必要としません)
役割:ハンドラを見つけるために、URLリクエストによると、
- これは、メソッド・ハンドラアダプタHandlerAdpater Controllerクラスであります
注意:ハンドラを書いている時点で、ルールに従ってああHandlerAdapterはそうアダプタのみハンドラを実行するためにHandlerAdapterの真であることを書くために必要なこと
- プロセッサコントローラ(開発するプログラマが必要です)
- ビューリゾルバViewResolver(開発するプログラマを必要としません)
- ビュービュー(JSPを開発するプログラマが必要です)
ビューは、その実装のサポート異なるビュータイプ(JSP、PDFなど)言い訳です
SpringMVCはリダイレクトと転送を設定する方法ですか?
- 転送:「フォワード」が先行戻り値では、のような「前進:user.do名=法4は?」
- リダイレクトします。http:://www.baidu.comなリダイレクト」などを加えた「リダイレクト」以前の値に復帰、
SpringMVCは、AJAXとは、お互いを呼び出す方法ですか?
Javaフレームワークによってジャクソンは、具体的には、以下のステップ、JS JSONオブジェクトによって同定することができる対象物の内部に直接変換することができます。
- Jackson.jarに参加
- 設定ファイルのJSON構成マッピング
- AJAXは、直接などのオブジェクト、リストを返すことができる方法の内側に受けますが、メソッドの前にコメントを追加する@ResponseBody
Spring MVCのの例外処理
対処するためのSpringフレームワーク、春のフレームワークを投げることができます:我々は唯一の簡単な例外処理を設定する必要があり、例外ハンドラにページを追加することができます
SpringMVCのコントローラはシングルトンではないでしょうか?その場合、問題が何であるか、どのように解決するには?
それはシングルトンです。だから、マルチスレッドアクセスは、スレッドの安全性の問題がある、同期を使用しないとき、それはソリューションのパフォーマンスに影響しますが、フィールド内のコントローラで書かれていません
SpringMVCは、一般的に、注釈何を使用しましたか?
@RequestMapping:URLが要求を処理するためのマッピングを軽減する、クラスまたはメソッドを使用することができます。クラスに対応するすべての要求クラスの表現は、親パスとしてアドレスに変更されます
@RequestBody:HTTPリクエストJSONデータを達成するために、注釈を受信するには、JavaオブジェクトをJSONに変換します
@ResponseBody:ノートConreoller方法を達成する顧客に対応するオブジェクトにJSONオブジェクトを返します。
SpringMVCの一般的に使用される注釈コントローラ、誤解の他の代替はありませんか?
一般的な使用の注釈@Controller、あなたは注釈が@ ResponsBody +コントローラ@に相当し、@ RestController、@ RestController使用することができ、プレゼンテーション層表現は、加えて、一般的に他の代替コメントはありませんされて
インターセプト要求した場合、私はどのように設定するには、提出のアドバイス可能な方法を取得したいと思いますか?
内部のノートを@RequestMapping方法= RequestMethod.GETを追加することができます。
そこリクエストやセッションを取得する方法の過程で
法の直接の声明の形でリクエストパラメータ、SpringMVCは自動的にリクエストオブジェクトを渡します
あなたはそれを傍受するための方法で渡されたフロントデスクのパラメータから取得したい場合は、どのように取得するには?
このパラメータに直接イアン文には、次のパラメータの形態であることができますが、名前とパラメータは同じ上を通過しなければなりません。
フロントデスク場合は曲の多くは、パラメータを渡され、これらのパラメータがオブジェクトである場合、どのように迅速にこのオブジェクトを取得するにはあるのですか?
このオブジェクトは、プロセス内で直接宣言され、SpringMVCが自動的に内部でこのオブジェクトに属性を割り当てます。
SpringMVC 関数の戻り値は何ですか?
戻り値は、多くの種類のことができ、そこに文字列、のModelAndView、のModelAndViewビュークラスとデータが一緒になって、文字列を使用することが一般的に優れています
SpringMVCのアノテーションの原理?
自然の注釈は特殊なインターフェースアノテーションを継承している、特定の実装クラスは、返品を反映してノートを取得し、Javaランタイム動的プロキシクラスによって生成されるには、Javaランタイム動的プロキシオブジェクトを生成したプロキシオブジェクトを介してカスタムmenmberValuesを呼び出すことですこのインデックスに対応する値をマッピングし、memberValues Javaの定数プールの源です。
春の宣言的トランザクション管理:注釈ベースの方法
- ああ、えっ中spring.xmlにおけるトランザクションマネージャ、DataSourceTransactionManager
- spring.xmlでの取引で開くコメント
- 対応するサービス層に注釈を追加トランザクション