AOPも自動登録してみよう。
さっき作ったHello worldにログを仕込んでみる。
Log4jを使うのでlog4j.propertiesを用意する。
内容はWebから適当に拾ってきたものをコピペして書いた
### direct log messages to stdout ### log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d %5p %c{1} - %m%n log4j.rootLogger=debug, stdout
次にapp.diconにアスペクトの自動登録の記述を付け足す。
<!-- componentsタグのすぐ後ろに --> <include path="aop.dicon" /> <!-- ComponentAutoRegisterの後ろに --> <component class="org.seasar.framework.container.autoregister.AspectAutoRegister" > <property name="interceptor"> aop.traceInterceptor </property> <initMethod name="addClassPattern" > <arg>"org.sample.s2"</arg> <arg>".*Impl"</arg> </initMethod> </component>
こんな具合。
おもむろに実行!
2006-11-12 15:30:48,890 DEBUG TraceInterceptor - BEGIN org.sample.s2.component.impl.GreeterImpl#greet() 2006-11-12 15:30:48,890 DEBUG TraceInterceptor - BEGIN org.sample.s2.component.impl.MessengerImpl#getMessage() 2006-11-12 15:30:48,890 DEBUG TraceInterceptor - END org.sample.s2.component.impl.MessengerImpl#getMessage() : Hello world Hello world 2006-11-12 15:30:48,890 DEBUG TraceInterceptor - END org.sample.s2.component.impl.GreeterImpl#greet() : null
イイネ!