SpringにS2Javelinを適用する
http://d.hatena.ne.jp/KenichiroMurata/20051209#p1にて、どのようにSpringにS2Javelinを適用したかを纏めます。
事前準備
- S2Javelin-V0.1.0.zipをダウンロードしておく。
- arrowvision.zipをダウンロードしておく。
- S2.3.4.zipをダウンロードしておく。
- springframeworkをダウンロードしておく
- sample_apli_spring.zipをダウンロードし、eclipseにインポートしておく。
s2javelin.jarの配置
xmlファイルの設定
- ThinkITSpring\WEB-INF\applicationContext.xmlを以下のように変更する。
<!-- 変更 --> <!-- DAO --> <bean id="employeeDaoTarget" class="jp.co.thinkit.employee.dataaccess.springjdbc.EmployeeDaoImpl"> <property name="dataSource"><ref local="dataSource" /></property> </bean> <!-- 追加 --> <bean id="employeeDao" class="org.springframework.aop.framework.ProxyFactoryBean"> <property name="target"><ref bean="employeeDaoTarget"/></property> <property name="interceptorNames"> <value>javelinTraceInterceptor</value> </property> </bean> <!-- Transaction --> <bean id="employeeManager" class="org.springframework.transaction.interceptor .TransactionProxyFactoryBean"> <property name="transactionManager"> <ref local="transactionManager" /> </property> <property name="target"> <ref local="employeeManagerTarget" /> </property> <property name="transactionAttributes"> <props> <prop key="find*"> PROPAGATION_REQUIRED, -java.lang.Exception, readOnly </prop> <prop key="update*"> PROPAGATION_REQUIRED, -java.lang.Exception </prop> </props> </property> <!-- 追加 --> <property name="postInterceptors"> <ref bean="javelinTraceInterceptor"/> </property> </bean> <!-- 追加 --> <bean id="javelinTraceInterceptor" class="org.seasar.javelin.JavelinTraceInterceptor"> <property name="args"><value>true</value></property> <property name="return"><value>true</value></property> <property name="logStackTrace"><value>false</value></property> </bean>
log4j.xmlの設定
<!-- 追加 --> <appender name="DaoSql" class="org.apache.log4j.FileAppender"> <param name="File" value="c:\\temp\\s2javelin.jvn" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="Write ,%d{yyyy/MM/dd HH:mm:ss.SSS},,DaoSQL,0,%M,%C,0,public,%t%n <<javelin.FieldValue_START>>%n%m%n <<javelin.FieldValue_END>>%n%n"/> </layout> </appender> <!-- 追加 --> <appender name="Javelin" class="org.apache.log4j.FileAppender"> <param name="File" value="c:\\temp\\s2javelin.jvn" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%m%n"/> </layout> </appender> <!-- 追加 --> <logger name="org.seasar.javelin"> <level value="debug"/> <appender-ref ref="Javelin" /> </logger> <!-- 追加 --> <logger name="org.springframework.jdbc.core.JdbcTemplate"> <level value="debug"/> <appender-ref ref="DaoSql" /> </logger>
以上で設定は完了です。
以降はhttp://d.hatena.ne.jp/KenichiroMurata/20051212#p3と同様です。
補足
本設定は[ThinkIT] 第2回:Seasar2とSpringのインストール (1/4)(の4ページ)の従業員管理システム(Spring)にS2Javelinを適用するための例です。Spring Frameworkによる他のアプリケーションにS2Javelinを適用するには、本設定を参考にしてorg.seasar.javelin.JavelinTraceInterceptorを適用する設定を行ってください。またjdbc周りもアプリケーションによっては追加でlog4jの設定を行う必要があるかもしれません。