ToStringInterceptorを使ってみる
SVNから取得してToStringInterceptorをS2JSF/S2/S2Daoによるユーザ管理アプリケーションに使ってみました。
やったこと
aop.diconを定義
<components namespace="aop"> <component name="traceInterceptor" class="org.seasar.framework.aop.interceptors.TraceInterceptor"/> <component name="traceThrowsInterceptor" class="org.seasar.framework.aop.interceptors.TraceThrowsInterceptor"/> <component name="propertyInterType" class="org.seasar.framework.aop.intertype.PropertyInterType" > <property name="trace">true</property> </component> <component name="toStringInterceptor" class="org.seasar.framework.aop.interceptors.ToStringInterceptor" > </component> </components>
account.diconを定義
<component class="org.seasar.framework.container.autoregister.AspectAutoRegister"> <property name="interceptor">aop.toStringInterceptor</property> <property name="pointcut">"toString"</property> <initMethod name="addClassPattern"> <arg>"example.dto"</arg> <arg>".*Dto"</arg> </initMethod> <initMethod name="addClassPattern"> <arg>"example.entity"</arg> <arg>".*"</arg> </initMethod> </component>
何が便利?
ComponentAutoRegisterによって一度定義しておけば、コンポーネントを自動登録してくれるように、AspectAutoRegisterによってToStringInterceptorを一度定義しておけば、例えばDtoに変更があっても自動的にtoStringメソッドが組み立てられるので便利です。フィールドの追加が合った場合にtoStringメソッドの変更を忘れるということはよくあります。それを意識しなくて済むのは嬉しいです。地味ですが、開発者の味方になる機能です。