読者です 読者をやめる 読者になる 読者になる

JNDI

RMI レジストリサービスプロバイダ
Java Naming and Directory InterfaceTM (JNDI)
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/jndi/jndi-rmi.html

J2EEの開発で頭に来るのがJNDIやらEJBやらJTAやら、コンテナが実装を持っていてライフサイクルも管理していて
しかもコンテナバックエンドで連携してたりして(果たして疎結合といえるのか)、J2SE環境のシンプルなアプリケーションから
手出しが出来ないところだ。そんな重量APサーバに対するアンチとしてライトウェイトコンテナ(DIコンテナ)が出てきている。
でAPサーバはJ2EEターゲットでDIコンテナは汎用のオブジェクト管理と目的は違うのだけれど、もともとJ2EEのスペックだと
実装をxmlで簡単にスイッチできますよ、と約束してくれたけど実際は面倒でスイッチなんてできません、というところが問題で(とかあとまぁ問題山盛りなのは皆知ってる)、J2EEサーバの実装定義が楽で(EJB3の方向?)、CUIアプリやテスト環境では1秒でコンテナが立ち上がるライトウェイトモードみたいのがあったらライトウェイトコンテナもこんな流行らなかったんじゃないかなぁと思う。

DIコンテナのオブジェクトファクトリから名前ベースでオブジェクトを取得するところがDIコンテナ依存になっちゃうのって、
JNDIインターフェース的にJ2SEスペックなAPIで統一的に取得できればいいのになぁと思った。でコンテナ実装がSeasar2でもspringでもいいですよ、という感じで。
と言いつつもたぶんsun定義のスペックだと何やっても面倒だからライトウェイト勢がスペックリードになるのがいいんでしょうな。