欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Spring MVCの概要を理解する | ぺんぎんらぼ

1. Spring MVCの特徴
2. Spring MVCでWebアプリケーションを作る特長(cháng)
3. Spring MVCが動(dòng)く仕組み(プレゼンテーション層)

1. Spring MVCの特徴

● Spring MVCはMVC型のフレームワークであること
● アノテーションの採用(たとえばControllerクラスを作成するためにControllerインターフェースをimplementsする必要がなくなりクラスに@Controllerアノテーションを宣言するだけでいい)
● SpringのControllerは、RESTの実裝方式(RESTではWeb上の情報の一つ一つをリソースとしてとらえ、それらの識別子としてURIを割り當ててユニークに特定できるようにすることSpringのControllerもURLとメソッドを直接結びつけている)
● DIという技術(shù)を使っている
● AOPという技術(shù)を使っている

 

2. Spring MVCのWebアプリケーションの特長(cháng)

普通にWebアプリを作ると、次のような3つの問(wèn)題がある。

A. オブジェクトのライフサイクルの問(wèn)題
コントローラを実現するServletは、View部分にアクセスするユーザ數が増えるたびにインスタンス化されることによるガーベージコレクト時(shí)のパフォーマンス低下やメモリへの圧迫を防ぐよう、マルチスレッドで動(dòng)作させる。しかし、コントローラから呼ばれるサービスロジックのオブジェクトを毎回インスタンス化するように設計?実裝させてしまえば、View部分にアクセスするユーザ數が増えたときにインスタンスが増大し、ガーベージコレクト時(shí)のパフォーマンス低下やメモリの圧迫が発生してしまう恐れがある。これを防ぐためには、サービスロジックのオブジェクトはSingletonにしなければならない???(37頁(yè))

B. 部品化の問(wèn)題
Webアプリケーションを構成するオブジェクト間の依存関係は、インタフェースを介して実裝非依存にすることでオブジェクト間を疎結合に保つことができる。???しかし、Springのようなフレームワークを利用せずに、このようなインタフェース依存?実裝非依存を実現するにはテクニックを要する。例えば、単にインタフェースを利用するだけでは、実裝非依存にならない。そこで、通常はFactoryMethodなどを導入して、実裝非依存を実現する。(37-38頁(yè))

C. 技術(shù)隠蔽や不適切な技術(shù)隠蔽の問(wèn)題
顧客クラスや受注クラスの中に、顧客や受注の処理とは言いがたいトランザクションの例外、ロギングのような処理が入ってくるのは、プログラムの可読性を著(zhù)しく落としてしまう。また、例外処理がいくつも書(shū)かれているということは、ソースコード中の分岐が増えるということは、可読性はもちろん、Unitテストの容易性だって落としてしまうことになる。(39-40頁(yè))

 

で、それぞれの問(wèn)題は、以下のような感じ、DIコンテナ×AOPで解決できる。
A. オブジェクトのライフサイクルの問(wèn)題  →DIコンテナで解決
B. 部品化の問(wèn)題  →DIコンテナで解決
C. 技術(shù)隠蔽や不適切な技術(shù)隠蔽の問(wèn)題  →AOPで解決

 

■DIコンテナとは
● オブジェクト、オブジェクト同士の関連を生成をする
● インタフェースベースのコンポーネントを容易に実裝可能にする
● あるオブジェクトのプロパティにそのオブジェクトにそのオブジェクトが利用(依存)するオブジェクトを設定(作成)すること。
● 普通のWebアプリだと、各オブジェクトが別のオブジェクトを直接newして利用するので、密結合になってしまうが、
SpringのDIコンテナが入ることで、各オブジェクトの依存関係が解消される(48頁(yè))。


インタフェースに関連しているではないか、と思うのだが、「DIを利用するときは、原則としてクラスはインタフェースのみに依存して、具象クラスには依存しないようにする必要がある」らしい。
● DIコンテナの実體の核になるのはBeanFactory。BeanFactoryは、その実行時(shí)に渡されるBean定義ファイルに基づいてファイルを生成し、インスタンスのインジェクションを行う。
インジェクションの意味はよく分からなかったorz

■AOPとは
● オブジェクトの責務(wù)以外のロジック(ユーザ認証やロギング、トランザクション管理や例外処理)をソースコードに記述することなく、後から追加できる。

 

3. Springが動(dòng)く仕組み


① DispacherServletはブラウザからリクエストを受け取る
② DispacherServletは、リクエストされたURLをHandlerMappingオブジェクトに対してよびだし対象のControllerオブジェクトを取得し、URLに該當するメソッドを実行する
② Controllerオブジェクトはビジネスロジックを使用して処理を実行し、その結果を基にビューに渡すオブジェクトをModelオブジェクトに格納する。最後にControllerオブジェクトは処理の結果に応じてView名を返す
④ DispacherServletはControllerから返されたView名をViewResolverに渡し、Viewオブジェクトを取得する。
⑤ DispacherServletはViewオブジェクトに畫(huà)面表示を依頼する
⑥ Viewオブジェクトは該當するビューを呼び出して畫(huà)面表示を依頼
⑦ ビューはModelオブジェクトから畫(huà)面表示に必要なオブジェクトを取得し、畫(huà)面表示処理を実行する

DispacherServletイメージはSpringを制御するクラス。すべてのHTTPリクエストを受け付けて、HandlerMappingオブジェクトから取得したControllerオブジェクトのメソッドを実行。その他のオブジェクトの流れを制御する?;镜膜摔嫌靡猡丹欷皮い隓ispatcherServletクラスをそのまま使う。
HandlerMappingオブジェクトDispacherServletからの要請を受けて、URLから、呼び出すControllerオブジェクトを返卻する。
ViewオブジェクトViewインタフェースをImplemtensしたViewオブジェクト。Webコンテナ上で管理されているJSPといったリソースに対してforwardをしてくれる「InternalResourceView」などがある。

上の流れには登場(chǎng)しないが、このほかにも各クラスの依存性を解消して疎結合に保つための色んなクラスがある。

以上、今回はここまで。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
圖解Spring MVC
Spring MVC使用心得
ssh中3種框架在開(kāi)發(fā)中的作用分別是什么?
spring mvc中常見(jiàn)的幾個(gè)controller
Spring3 MVC (二)----注解基本配置及@Controller和@Reques...
Java程序員應知應會(huì ),為什么現在我們不用Servlet了?
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久