マイクロチャンネル公衆数により歓迎の注意:すべての食品エンジニアXiaohui〜
春の利点?
- ソフトウェア層の間のデカップリングを達成するために、構成要素間の結合を減少させます
- あなたは簡単に使うなど、トランザクション管理、メッセージングサービス、など多くのサービスを提供することができます
- シングルトンのコンテナがサポートを提供します
- コンテナは、実行時の監視およびその他の機能を傍受する権限として、実装することは非常に使いやすい、AOPの技術を提供します
- 春のIoCアプローチは、ビジネス・オブジェクトの交換の複雑さを軽減します
- コンテナは、アプリケーションの開発を加速することができ、多くの補助クラスを提供しています
- 主流のアプリケーションフレームワークのスプリングは、MyBatisの等のHibernate、JPA、として、統合されたサポートを提供します
- 低侵襲春のデザイン、低公害コード、および各種アプリケーションサーバとは独立して
- 春に完全に依存Springの非常にオープンではなく、必須アプリケーションは、開発者は、スプリングの一部またはすべてを選択するのは自由です。
なぜこの記事はAOPを話せないのですか?
IoCとAOPは、オブジェクト指向プログラミングを実装するように見ることができるSpringフレームワーク、のIoCとMVCプロセスは、不可分での二つの特徴であり; AOP機能はセクション指向プログラミングに反映されるが、前者を補完し、開いて分割することが可能ですフォローアップ説明します。
本論文では、プロセスSpringIoCとSpringMVCは簡単な説明を、より詳細なプロセス、クリアするために、プロセスダウン要求デバッグで、詳細なメモを行うには、コードのほとんどすべての行のコードベースの作者を見るために歓迎しました。
SpringIoCは何ですか?
コントロールのIoC(制御の反転)の反転は、デザインのアイデアです。プログラムは、IOCは、私たちは制御の反転の使用は、オブジェクトを作成するために、第三者に譲渡されながらオブジェクトは、独自のプログラムによって制御される作成、完全にプログラムにハードコードされたオブジェクトとオブジェクト指向プログラミングオブジェクト間の依存関係を作成するために使用されません。
IoCのは、さまざまな方法のIoCの完璧な実現を使用して、コアSpringフレームワークである、あなたは、あなたはまた、注釈を使用することができるXML構成を使用することができ、春の新バージョンでは、ゼロコンフィギュレーションのIoCを達成することができます。設定ファイルを読み込む前に、初期化中スプリング容器、コンフィギュレーションファイルまたはメタデータに応じて容器内にオブジェクトを作成し、プログラムで使用される必要IoCコンテナ内の被験体から除去された組織。
豆ゼロを達成するように、定義情報は、豆と分離され、そして注釈としての使用の両方が一つに結合することができる場合、実装クラスに直接ビーン定義情報を注釈として定義され、配置されたXMLを使用して設定の目的。
SpringIoCプロセス?
- 基本パッケージをスキャンします。設定ファイルを読み込み、その後、走査経路に応じてパッケージ全体構成をスキャンし,,そして最後に収集配列の後に完全修飾名を持つクラス名に追加
- クラスのすべてのインスタンスは、注釈付き。配列はトラバーサルステップを設定し、クラスに注釈やインスタンス化クラスの判定は、クラスキーと呼ばれる、インスタンスがハッシュテーブルに入れた値であり、
- 依存性注入。トラバースハッシュテーブルの上にステップ、クラスのすべてのフィールドを取得し、ノートのか@Autowired種類のフィールド、フィールドの判決を横断、それがされている場合、このインスタンスマップフィールドに割り当てを置きます
URLアドレスとマッピング方法。コントローラインスタンスは、トラバーサルを取得し、メソッド場合決意方法は@RequestMapping注釈を含む場合に含まれている場合、ハッシュテーブルを横断する第二のステップは、その値が値@RequestMapping注釈キー値で構成されるスプライシング@Controller、取得されます方法として、電流値、荷電hanlerMap
リフレクション要求コール。メソッド実行反射され、そのアドレス、スプリット、コントローラの例を得る取得方法のインスタンスを取得し、URLリクエストの上(このステップは、既にMVC見えます)
SpringMVCとは何ですか?
SpringMVC要求フレームは、サーブレット設計の周りに駆動され、コントローラへの要求は、次にモデルは、要求の結果を表示するディスパッチャビューオブジェクト。コアクラスはのDispatcherServletであり、それはトップ層は、サーブレット・インターフェースを達成される、サーブレットです。
なぜSpringMVC?
フレームの効果は、プログラミングを簡素化するために使用されています:
サーブレットのみのdoGetとdoPostメソッド、サーブレットクラスは、URLパターンを処理することができます。
DELETEなどSpringMVCの多くの要求をRequestMappingによって処理することができるクラス、および残りのスタイルをサポートするために要求/等をPUT、SpringMVCマッピングパラメータは、エンティティ・クラスに直接包装することができます。
SpringMVCプロセス
フローチャート作画:
- ユーザーは、フロントエンドコントローラのDispatcherServletに要求を送信します。
- DispatcherServletフロントコントローラは、要求のマッパプロセッサHandlerMappingレシートを呼び出します。
- プロセッサマッパーHandlerMappingは(が発生した場合)をまとめてフロントコントローラのDispatcherServletに返されるオブジェクトとプロセッサハンドラインターセプタのHandlerIntercepterを生成し、そのURLに従って特定のプロセッサ要求を見つけます。
- プロセッサ・アダプタを介してのDispatcherServlet HandlerAdapterフロントコントローラコントローラ呼プロセッサ。
- 実行プロセッサ(コントローラ、また、バックエンドとしても知られます)
- リターンのModelAndViewの実装後のプロセッサコントローラ。
- プロセッサコントローラマッパーHandlerAdapterプロセッサの実行結果は、バックフロントコントローラのModelAndViewのDispatcherServletに戻します。
- フロントコントローラはModelAnViewビューリゾルバViewResolverを渡すのDispatcherServlet。
- バックビューリゾルバViewResolverビューは、特定のビューを解析します。
- (モデルビューにデータを埋め込むすなわち:)のDispatcherServletビュービューをレンダリングコントローラの正面端面図
- ユーザに応答して、フロントコントローラのDispatcherServlet。
MVCのプロセスモジュール:
- DispatcherServlet:フロントエンドコントローラ(開発するプログラマを必要としない)
ユーザ要求がMVC C(コントローラ)に等価であるフロントエンドコントローラに達し、全体のプロセスのDispatcherServletの中心がユーザの要求を呼び出す処理の他の構成要素によって制御される、のDispatcherServletコンポーネント間の還元カップリングの存在。
効果:要求、対応する結果を受信し、リピータに対応するように、中央プロセッサは、他の構成要素との間の結合の程度を低減します。
- HandlerMapping:プロセッサマッパー(開発するプログラマを必要としない)
インタフェースを達成するために、プロファイル:ユーザの要求に応じてハンドラ(すなわち:プロセッサ)を見つけるための責任HandlerMapping、異なるSPRINGMVCマッパのマッピングを提供するには、例えば、さまざまな方法を達成するために実装しましたなど、注釈モード。
役割:リクエストURLに応じてハンドラを探します - ハンドラ:プロセッサ(必要プログラマ)
特定のユーザ要求のためのDispatcherServlet、ハンドラの制御下でフロントコントローラの後、次のハンドラコントローラのDispatcherServletは、処理されます。
ハンドラは、特定のユーザーのサービス要求を設計しているので、それは一般的にビジネスを展開するために、プログラマを必要とハンドラを必要とします。 - HandlerAdapter:プロセッサアダプタ
アダプタモードのアプリケーションであるプロセッサのHandlerAdapter介して、プロセッサは、アダプタによって実行される膨張の複数のタイプであってもよいです。
役割:ハンドラは、特定のルール(規則によって必要HandlerAdapter)に応じて実行します - ViewResolver:ビューリゾルバ(プログラマを必要としない)
ViewResolverに従って生成する処理結果を表示するためのViewResolver責任は、最初のビューは、最終的にレンダリングされ、ビュー・オブジェクト・ビューを生成し、次に、すなわち、論理ビュー名の物理的ビューに特定のページアドレスを名前解決ページをユーザーに示すことによって治療成績。ビューSpringMVCビューフレームワークがあって、多くの種類を提供しています。JSTLView、freemarkerView、pdfViewが好きです。
アクション:リアルビュー(ビュー)を表示するには、論理名の解像度に応じて、ビューを解析します。 - ビュービューは、(JSPプログラマーが必要)
ビュービュー(JSP、FreeMarkerのなど)のインタフェースの実装クラスのサポート、異なるタイプでプログラムする必要があり、一般的にページまたはタブページテンプレート技術によってページを介してユーザにデータモデルを表示する必要がありますメンバーは、ビジネスニーズに基づいて特定のページを開発します。