月曜日, 10月 20, 2008

[Spring2.5]factory-beanって何かね??

なんとなくではあるが、Springの使い方を改めて一から勉強してみる。 まぁ、正直今まででも真面目に見たことはなかったんですが。。。 いいかげんにこういったものの使い方を覚えておかないと この先生きていけるか不安で不安で。。。 ともかく、Spring 2.5.5のSpring ReferenceというPDFを読んでみた。 まだ、chapter3の途中までなんですが、 importとかの存在も知らなかった自分が恥ずかしいです。。。 何かあるんだろうなぁ~とは思いつつ過ごしてきただけにこうやって改めて見てみると 「やっぱり、きちんと書いてるんだなぁ~」と実感です。 あとは、よくドキュメントとかでBeanFactoryってのを呼んでたけど リファレンスではApplicationContextってのを呼んでる(もちろんBenaFactoryも載ってますけど) 階層構造を覗いてみて僕はまだまだ勉強不足ってことがよくわかった。 ApplicationContextの方がBeanFactoryより親なんだね。。。 僕はずっとBeanFactoryが親だと思ってたよ。。。 ともかく、こうやって一つ一つ見直していくといろいろあるもんだということが分かった。 その中でも一番よくわかんなかったのはfactory-beanっていう属性だ。
<!-- the factory bean, which contains a method called createInstance() -->
<bean id="serviceLocator" class="com.foo.DefaultServiceLocator">
<!-- inject any dependencies required by this locator bean -->
</bean>
<!-- the bean to be created via the factory bean -->
<bean id="exampleBean" bean="serviceLocator" method="createInstance">
</bean>
この中のfactory-beanの意義がようわからん。。。 やってることは理解してるつもりではいます。 com.foo.DefaultServiceLocator#createInstance()でタイプ未定義のexampleBeanを返すよん。 ってなところでしょう。 実際動かしてみたし、間違いはないはず。 結局、あえて別定義でBeanを用意するようなパターンってあるのかな?? もっと複雑になれば変わってくるのかもしれないけど。。。 そもそもファクトリーメソッドをいちいちSpringというコンテナ経由で取得する必要があんのかな?? だって、結局のところBeanとFactory間の関連が強くなっちゃうんじゃないの?? それならそのままコーディングした方が楽なような。。。 うーん、たぶん無知な僕は利点が見つかるまでは使わないと思う。。。

0 件のコメント:

failed to read qemu headerのときのメモ

かなり久々。。。 忘れないようにここに書きこんでおく。 ちょっとした手違いで libvirtでイメージを起動しようとすると failed to read qemu header なんておっしゃられて起動しない。。。 vmwareserverを使って...