私はオフィスで春を過ごすのは初めてです。だから私にはガイダンスはありません。
log4j
を使用して、AOP
でロギングを実装する必要があります。
基本的なspring MVC
の例でAOP
なしでロギングを実装しましたか?
また、ログなしでAOP
を使用してaspectJ
の小さなサンプルを行いました(Sysout
を作成しました)?
私はそれを統合する方法がわかりませんか?
誰でも私にスタートアップのアイデアを教えてもらえますか?
良い答えは間違いなく感謝されます...
Springを使用すると、AOPを簡単に使用できます。簡単なロギングの例を次に示します。
_@Aspect
public class MyLogger {
private Logger log = Logger.getLogger(getClass());
@After("execution(* com.example.web.HomeController.*(..))")
public void log(JoinPoint point) {
log.info(point.getSignature().getName() + " called...");
}
}
_
次に、applicationContext.xml(または同等のもの)を構成します。
_ <aop:aspectj-autoproxy>
<aop:include name="myLogger"/>
</aop:aspectj-autoproxy>
<bean id="myLogger" class="com.example.aspect.MyLogger"/>
_
MyLoggerクラスで、メソッドのすぐ上で_@After
_を指定したことに気付くでしょう。これはアドバイスと呼ばれ、基本的にこの 'log'メソッドがafter問題のメソッドと呼ばれることを指定します。他のオプションには_@Before, @Around, @AfterThrowing
_が含まれます。
式"execution(* com.example.web.HomeController.*(..))"
はポイントカット式と呼ばれ、ターゲットとするものを指定します(この場合、HomeControllerクラスのすべてのメソッド)。
追伸aop
名前空間(_xmlns:aop="http://www.springframework.org/schema/aop"
_)とスキーマの場所(バージョンに依存)は、一番上のapplicationContext.xmlに追加する必要があります。私のセットアップは次のとおりです。
_<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">
_
Aspectjを統合するには、いくつかの手順を実行する必要があります。
サンプルaop.xmlは次のとおりです。
<aspectj>
<aspects>
<aspect name="test.MySimpleLoggerAspect" />
</aspects>
<weaver>
<include within="test.myproject.*" />
</weaver>
</aspectj>
すでにスプリングを使用している場合は、セットアップを簡素化するためにスプリングを使用する方が良いです、ここに良い例があります http://forum.springsource.org/showthread.php?61551-Bean-Factory-is- not-set-for-BeanConfigurerSupport