忍者ブログ

2024
09
17

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2024/09/17 (Tue.)

2008
11
28

seasarについて

DI+AOPの軽量コンテナ

DIとは?
Dependency Injection(依存性注入)
DIを実現するメカニズムの概要は,オブジェクト相互の依存性をプログラム外部に記述して,実行時に結合することである。

依存性とは?
Java言語ではオブジェクトは「Javaクラス」として記述する。ここで,「A」というJavaクラスのソースコード中に,「B」を呼び出すコードが含 まれていたとしよう。このコードは,「AがBを生成し,そのメソッドを呼び出す」という内容になる。生成するためには,AはBを知っていなければならな い。つまり,Aを実行するには同時にBが必要となる。これが依存性である。

依存性の正体がオブジェクトの生成のコードであるならば,この「悪者」となっているコードを消せないか?
具体的には,Bを生成するコード(=依存性)を A本体に含めず,その実行時に動的に「注入」できないか?
この考え方が,依存性注入(Dependency Injection),すなわちDIなのである。

DIを実現するメカニズム
オブジェクトAがオブジェクトBに依存する部分を,Aのソースコードに直接記述するのではなく,間接的な方法で(メタレベルで)記述する。例えば Spring Frameworkの場合は,XML形式の設定ファイルに,AとBとの間の依存性を記述する。EJB3.0では,Java言語仕様に加わったメタデータに より,アノテーション(「@session」など,プログラム・コード中に挿入する付帯情報)として記述する。

AOPとは?
Aspect Oriented Programming:アスペクト指向プログラミング
横断的な関心事
たとえば、ログトレース。いろんなところでログトレースしたい。でもいろんなとこに書くのは無駄。
じゃAOPで、処理を分離する。横断的なロジックと関係無い処理は、アスペクトとして分割する。

静的なAOPと動的なAOP
静的なAOP:AspectJ
動的なAOP:Seasae2、Spring

バイトコードレベルでアスペクトを織り込むタイプ
   クラスロード時や実行時にバイトコード変換を用いて、アスペクトを織り込むタイプのAOPです。Seasar2はバイトコードレベルでアスペクトを織り込むタイプです。

プロキシを利用してアスペクトを織り込むタイプ
Spring

Seasar2のAOPについて
Seasar2のAOPのAdvice

Around Advice、Before Advice、After Advice、After Returning Advice
それぞれ、Joinpointの前後・前・後に実行されるAdvice。これらは独自のAdviceとして実装する必要があります。
Throw Advice
Joinpointで例外が発生した場合に実行されるAdvice。Seasar2の提供するThrowsInterceptorを継承して実装する必要があります。
その他のAdvice
Joinpointに対する機能を実装済みのAdvice。Seasar2の提供するInterceptorをそのまま利用できます。
POJOとは?ポヨ?
Plain Old Java Object
ごく普通のJavaオブジェクトであることを強調した名称。
Javaにおいてもっとも寿命が長いのは、どんなフレームワークでもない、POJOであろう。
それは「Javaである」ことしか要請しないのだから。POJOは中継層やプロセス層のような「うつろいゆくもの」に依存しない。
POJOはテストを容易にする。
PR

2008/11/28 (Fri.) Trackback() Comment(0) seasar

Comments

名前
メールアドレス
URL
コメント
PASS  Vodafone絵文字 i-mode絵文字 Ezweb絵文字

Trackback

Trackback for this entry:

カレンダー

08 2024/09 10
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

リンク

カテゴリー

フリーエリア

最新CM

[08/09 VMAXON]

最新記事

最新TB

プロフィール

HN:
No Name Ninja
性別:
非公開

バーコード

RSS

ブログ内検索

アーカイブ

最古記事

アクセス解析

FX NEWS


-外国為替-

コガネモチ