IoC

Type4

http://d.hatena.ne.jp/habuakihiro/20040312#1079062376 http://d.hatena.ne.jp/masataka_k/20040312#p1 S2のコンテナによるコンポーネントのメソッド呼び出しを 勝手にType4と呼ぶことにしたいと思います。(^^;

IoC比較

http://javatapestry.blogspot.com/ でやってた、SpringとHiveMindの比較をS2Containerでもやってみます。 app-config.xml 上記は、Advice(Interceptor)を直接コンポーネントに埋め込む例ですが、 Adviceを他のコンポーネントと共有する場合は、こうもかけま…

XMLでコンポーネントを定義する場合には、 文字列をオブジェクトやプリミティブ型に 何らかの方法で変換する必要があります。 Springでは、PropertyEditorを使って変換を行って います(らしい)。S2Containerは、式言語(Sel)を 使って変換しています。 例えば…

IoCコンテナのいきつく先

IoC

私が言うのもなんですが、 どのIoCコンテナも最終的なカタログスペックは、 似た感じになると思います。 開発者がどれだけ使う側の立場になっているかに よって、使い勝手が変わってくるんでしょうね。 また、アプリケーションサーバ側の立場から IoCコンテ…

コンポーネントのグルーピング

コンポーネントの定義を1つのファイルにすべて記述すると、 直ぐに肥大化してしまうため、S2Containerでは、定義ファイルを 分割してインクルードする機能があります。 j2eeComponents.xml ユースケース1Components.xml ユースケース2Components.xml 上記に…

続々Type2 VS Type3

前に、cglibを使ったAOPを組み込むとデフォルトのコンストラクタを 必要とするって事を書いたのですが、 Enhancer#create(Class, Object)を使えばいい話でした。 ということで解決(しょぼい勘違いでした)。 やっぱ、Type3を推奨します。

続Type2 VS Type3

IoC

昨日は、Type3が良いと書いたのですが、AOPを組み込むと、 (cglibは)デフォルトのコンストラクタを必要とするようで、Type3だと うまくいきません。(;_;) デフォルトのコンストラクタを定義しなければいけないとなると、 コンストラクタだけですべての設定が…

Type2 VS Type3

IoC

IoCコンテナを使うときには、コンポーネントのタイプを Type2(プロパティベース)、Type3(コンストラクタベース)なのか 考える必要がありますが、どっちがいいのかは特に結論は出ていないんじゃ ないかと思います。 正解かどうかは別にして、自分なりの結論が…

アンテナは一種のIoCコンテナ

blogがこれだけ普及してきたのは、情報収集・発信のバランスがうまく 取れているだけでなく、アンテナによって、各blogが興味のあるテーマを もとにゆるく結びついているからなのかぁと思ってます。 アンテナに依存関係を記述することによって、各blogが結合…

循環参照

クラスAがBを参照し、クラスBもAを参照しているような場合、 循環参照が発生します。 Type3の場合、循環参照があると無限ループに陥るので、 例外を発生させる必要があります。 Type2の場合、S2Containerだとインスタンスを作成する部分と プロパティを設定…

S2Container

S2ContainerはType2(プロパティベース)、Type3(コンストラクタベース) どちらでも動きます。 引数のないpublicなコンストラクタがあればType2、 そうでなければ、最も引数の多いコンストラクタを使ってType3で 動作します。 GirlとBoyの例だと S2Container c…

前は、設定ファイルは、クラスごとに持つほうが良いかもと 書いたんですが、その後、SpringやPicoのいろいろな ドキュメントやサンプルを読み、ある程度、関連のあるオブジェクトは、 1つの設定ファイルにまとまっていたほうが 見通しが良いなという考えに変…

seasar-user MLの方にも書いたんですが、 SpringのBeanの設定ファイルって直ぐに肥大化するような気がします。 クラスごとにbeanタグを持たせると良いような気がしてます。 Picoのほうが、私の目に付くところでは人気みたい。