Home > 技術 > Seasar2のdiconファイルとSpringのapplicationContext.xmlを比べてみた

Seasar2のdiconファイルとSpringのapplicationContext.xmlを比べてみた

一番簡単な定義として以下を書いてみた。
greetingClientクラスのgreetingメンバにgreetingクラスをDIするパターンだ。

こう見てみるとほとんど書き方が一緒なのが分かった。
今はSpringでWebシステムを実装しているので設定ファイルの量が膨大だが、
Seasar2を使えばそれも軽減されるのだろう。

Seasar2のdiconファイル

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC
 "-//SEASAR//DTD S2Container 2.3//EN"
 "http://www.seasar.org/dtd/components23.dtd">
<components>
 <component name="greeting"
  class="examples2.di.impl.GreetingImpl"/>
 <component name="greetingClient"
  class="examples2.di.impl.GreetingClientImpl">
   <property name="greeting">greeting</property>
 </component>
</components>


SpringのapplicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
 <bean id="greeting" class="examples2.di.impl.GreetingImpl" >
 </bean>
 <bean id="greetingClient" class="examples2.di.impl.GreetingClientImpl" >
  <property name="greeting" >
   <ref local="greeting"></ref>
  </property>
 </bean>
</beans>


またSeasar2は「Convention over Configuration(規約は設定に勝る)」を深く採用しているから
以下の書き方でパッケージ配下のImplがサフィックスに使われているクラスのインスタンスを生成し、
自動的にS2コンテナに登録してくれる。

後は、S2ContainerFactoryクラスを使って取得すればいい。
(なんて便利なんだ!)

<component
class="org.seasar.framework.container. autoregister.FileSystemComponentAutoRegister">
<initMethod name="addClassPattern">
<arg>"examples.di.impl"</arg>
<arg>".*Impl"</arg>
</initMethod>
</component>

via: Seasar - DI Container with AOP -

追伸:
S2StrutsなるもののExampleがSeasar2のサイトにあったので、EclipseにインポートしてみたがSaxParseExceptionが発生してTomcatの起動がうまくいかなかった。
なんでだろう…

Trackback:0

TrackBack URL for this entry
http://hisasann.com/cgi-bin/mt/mt-tb.cgi/569
Listed below are links to weblogs that reference
Seasar2のdiconファイルとSpringのapplicationContext.xmlを比べてみた from HouseTect, JavaScriptな情報をあなたに

Home > 技術 > Seasar2のdiconファイルとSpringのapplicationContext.xmlを比べてみた

Tag cloud
月別アーカイブ
Powered by
Powered by
Movable Type Commercial 4.261

Page Top