ゆーたんのつぶやき

株式会社ノークリサーチにてIT関連のシニアアナリストとして活動しています。

EJBとインターセプション



ここ最近はJBOSS AOPを勉強中です。JBOSSは3.X世代から使っていますが、基本的な
構造は変わらないので、EJBについては従来通り問題なく移行することができました。
JBOSS AOPについてはまだ一部のインターセプションしかサポートされていないものの
やはりクラス階層に影響されない横断的な処理をコードをいじらずに挿入できてしまう
というのは一度使ってしまうと手放せないところがあります。


そこでふと思うのが、EJBにはどうしてこういったインターセプション的なコンセプト
が取り入れられなかったのだろう?ということです。確かにejbStore/ejbLoadといっ
たようなビーンのライフサイクル上のイベント発生時においては処理を挟み込むこと
ができますが、もっとビジネスロジックに関係のある横断的な処理を挟み込みたいと
いう場面も少なくないように感じます。ボクの場合はSession Bean/Entiti Beanの
いずれの場合もお決まりのメソッドを実装したベースクラスを作成し、実際に利用す
るクラスはそれらから継承させます。ビジネスロジックに関連した共通処理はこのベ
ースクラスに入れますが、規模が大きくなればベースクラスが複数存在することもあ
り得るわけで、そうした場合にはコードが発散してしまうことになります。


良く良く考えればServletにもFilterというある種のインターセプションの仕組みが
備わっているようにエンタープライズでの構成要素には何かしらのインターセプショ
ンを許容する仕組みが必要なのではないかと思います。


EJB3.0ではPOJOへの対応ということでこれまでの縛りがかなり緩和されそうですが
それに合わせてビジネスロジックの観点からのインターセプションを許すような仕組
みが取り入れられたらいいなと期待しています。