JavaでWebアプリケーションを開発することになったのでSpring Frameworkを調査してみました。
従来のMVCフレームワークの問題点とSpring Frameworkによるその解決
従来のMVCフレームワークには以下のような問題点があるようです。
- レイヤー間の結合が密
- 変更に弱い
- レイヤー単体のテストが困難
- トランザクションコード(データベースのトランザクションを管理するコード)が散在
Spring Frameworkを利用するとどうなるのかというと
- 各レイヤーをインタフェースベースで連結するためレイヤー間の結合が疎
- DI(Dependency Injection): もともとの概念はMartin FaolerさんのHPを参照してください
- トランザクションコードをビジネスレイヤーから分離することができる
- AOP(Aspect Oriented Programming)
DIについて
DIはオブジェクトとオブジェクトを何らかの方法で関連付けし、関連付けられたオブジェクトを利用する側のオブジェクトでは、呼び出されるオブジェクトのインタフェースを利用してメソッドをcallすることになるので、オブジェクト間の結合が疎になります。
AOPについて
AOPはオブジェクトのメソッド実行時に動的に振る舞いを入れ込むことで、オブジェクトが本来処理するべき内容とそうでないものを分離することです。
例えばビジネスロジック内でDBアクセスを行うメソッドがある場合、そのメソッドの処理前と処理後にトランザクション開始とコミットの処理を動的に埋め込むことができるようになります。
0 件のコメント:
コメントを投稿