IoC
http://d.hatena.ne.jp/habuakihiro/20040312#1079062376 http://d.hatena.ne.jp/masataka_k/20040312#p1 S2のコンテナによるコンポーネントのメソッド呼び出しを 勝手にType4と呼ぶことにしたいと思います。(^^;
http://javatapestry.blogspot.com/ でやってた、SpringとHiveMindの比較をS2Containerでもやってみます。 app-config.xml 上記は、Advice(Interceptor)を直接コンポーネントに埋め込む例ですが、 Adviceを他のコンポーネントと共有する場合は、こうもかけま…
XMLでコンポーネントを定義する場合には、 文字列をオブジェクトやプリミティブ型に 何らかの方法で変換する必要があります。 Springでは、PropertyEditorを使って変換を行って います(らしい)。S2Containerは、式言語(Sel)を 使って変換しています。 例えば…
私が言うのもなんですが、 どのIoCコンテナも最終的なカタログスペックは、 似た感じになると思います。 開発者がどれだけ使う側の立場になっているかに よって、使い勝手が変わってくるんでしょうね。 また、アプリケーションサーバ側の立場から IoCコンテ…
コンポーネントの定義を1つのファイルにすべて記述すると、 直ぐに肥大化してしまうため、S2Containerでは、定義ファイルを 分割してインクルードする機能があります。 j2eeComponents.xml ユースケース1Components.xml ユースケース2Components.xml 上記に…
前に、cglibを使ったAOPを組み込むとデフォルトのコンストラクタを 必要とするって事を書いたのですが、 Enhancer#create(Class, Object)を使えばいい話でした。 ということで解決(しょぼい勘違いでした)。 やっぱ、Type3を推奨します。
昨日は、Type3が良いと書いたのですが、AOPを組み込むと、 (cglibは)デフォルトのコンストラクタを必要とするようで、Type3だと うまくいきません。(;_;) デフォルトのコンストラクタを定義しなければいけないとなると、 コンストラクタだけですべての設定が…
IoCコンテナを使うときには、コンポーネントのタイプを Type2(プロパティベース)、Type3(コンストラクタベース)なのか 考える必要がありますが、どっちがいいのかは特に結論は出ていないんじゃ ないかと思います。 正解かどうかは別にして、自分なりの結論が…
blogがこれだけ普及してきたのは、情報収集・発信のバランスがうまく 取れているだけでなく、アンテナによって、各blogが興味のあるテーマを もとにゆるく結びついているからなのかぁと思ってます。 アンテナに依存関係を記述することによって、各blogが結合…
クラスAがBを参照し、クラスBもAを参照しているような場合、 循環参照が発生します。 Type3の場合、循環参照があると無限ループに陥るので、 例外を発生させる必要があります。 Type2の場合、S2Containerだとインスタンスを作成する部分と プロパティを設定…
S2ContainerはType2(プロパティベース)、Type3(コンストラクタベース) どちらでも動きます。 引数のないpublicなコンストラクタがあればType2、 そうでなければ、最も引数の多いコンストラクタを使ってType3で 動作します。 GirlとBoyの例だと S2Container c…
前は、設定ファイルは、クラスごとに持つほうが良いかもと 書いたんですが、その後、SpringやPicoのいろいろな ドキュメントやサンプルを読み、ある程度、関連のあるオブジェクトは、 1つの設定ファイルにまとまっていたほうが 見通しが良いなという考えに変…
seasar-user MLの方にも書いたんですが、 SpringのBeanの設定ファイルって直ぐに肥大化するような気がします。 クラスごとにbeanタグを持たせると良いような気がしてます。 Picoのほうが、私の目に付くところでは人気みたい。