Seasar2 DI1

長い戦いになりそうです。diconに書いてあるコンポーネントを取得する。そんな感じで使ってはいたSeasar2(僕が使っていたのはversion2.3.4)ナンですが、ソースを、ま、見たことありますよ。でもどんな流れでコンポーネントが登録されていくのか一つとってもちょっと見たけれどなかなかになかなかだなと思ったデス。それで2.4系ではまた何かと違うみたいですが、ひとまず自分が使ってきた2.3.4のコードを読むことにしました。まずは、xmlの読み込みのxercesとかってナンなのか。SAXとDOMについてとかその辺からはじめなくてはならない。

http://msugai.fc2web.com/java/XML/index.htmlより

XMLプロセッサ
JavaなどのアプリケーションからXML文書を操作するには、XML文書との間に、XMLプロセッサ(パーサ)と呼ばれる処理系をはさみます。共通処理を部品化して、アプリケーションは適用業務(ビジネスロジック)の実装に専念させようとする思想です。背景には、HTMLをパーズしてレンダリングする処理系であるHTMLブラウザが、極めて複雑高度なものに変貌していった反省が横たわっています。XML処理系は、制約の検証とか、いろいろやってくれるので、アプリケーション側からは、XMLプロセッサのAPIを通して、抽象化(モデル化)されたXML文書を触れば良いことになるので、アプリケーション側でやらなければならないことが少なくなります。

SAX:
ランダムアクセスや構造の変更といった要件には弱いものの、逐次的な処理が可能であれば、メモリ消費量、実行速度の点で優れています。
	
COM:
XML文書に対応するツリー構造を静的にメモリ上に保持して、ランダムアクセス可能なAPIです。
	
JAXP:
Javaの標準パッケージに含まれ、DOM/SAXのAPIを抽象化して、Javaアプリケーションに対して、XMLプロセッサの実装に依存しない普遍的なAPIを提供します。
	


ちょいとのぞいたところdiconファイルを読むのはSAXを使っているみたいですね。まずSeasarに限らずJavaからAPI経由xerces実装を使用して、xmlファイルを読み込むという大雑把な流れを理解する必要があるかと思う。

Apache Xercesって?
http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000939.html
http://www.asahi-net.or.jp/~PS8A-OKZK/xml/tool/parser/xerces.html
http://ja.wikipedia.org/wiki/Apache_Xerces