2012-03-19 7 views
2

いくつかのメッセージのログを取るためには、あるメソッド(または今のところすべてのメソッド)の前に、Aspectのメソッドを呼び出す必要があります。私のアプリケーションは正常に動作していますが、Aspectクラスのメソッドは呼び出されません。ZKでAOPを設定してメソッドを傍受する

ローカルアプリケーションで同じフォルダ構造で同じカットポイントを試しましたが、ZKに含めるときに問題があります。また、AOPをサポートするように私のapplication-context.xmlを修正しました。

これは私のアスペクトクラスです:

package com.mypckg.services.impl; 

import org.aspectj.lang.annotation.AfterReturning; 
import org.aspectj.lang.annotation.Aspect; 
import org.aspectj.lang.annotation.Before; 
import org.aspectj.lang.annotation.Pointcut; 

@Aspect 
public class MyIntercpeter { 

    @Pointcut("execution(* com.mypckg.services.impl.MyService.getStudents(..))") 
    public void performance() { 
    } 

    @Before("performance()") 
    public void doSomethingBeforeExecution() { 
     System.out.println("Before execution method called..."); 


    } 

    @AfterReturning("performance()") 
    public void doSomethingAfterExecution() { 
     System.out.println("After execution method called..."); 

    } 
} 

私はapplication-context.xmlで行った変更は、私が何かを

<beans ......... 

    xmlns:aop="http://www.springframework.org/schema/aop" 

    xsi:schemaLocation=" 
      .......... 
      http://www.springframework.org/schema/aop 
    http://www.springframework.org/schema/aop/spring-aop.xsd"> 


..... 

<aop:aspectj-autoproxy /> 
<context:annotation-config /> 

をしないのですされていますか?前もって感謝します。

答えて

0

あなたは明白なことを忘れてしまったようです:春の設定で豆を宣言するのを忘れましたか?春のドキュメントから

春AOPは、唯一の方法の実行は、春の豆のポイントを参加サポートし、あなたが春の豆のメソッドの実行を一致するとポイントカットと考えることができます。

http://static.springsource.org/spring/docs/2.0.x/reference/aop.html

あなたは注釈または設定して、豆を宣言することができます。

また、あなたが使用しているスプリングのバージョンを置く方が良いでしょう(2.0.xと思われます)。

+0

私は春の設定ファイルですべての豆を宣言しました。私は春のアプリケーションコンテキストファイルの変更部分だけを与えました。私たちはSpring 2.5を使用しています –

+0

言及するだけで:パフォーマンスを測定するために注釈と注釈プロセッサをすでに持っているperf4jを使用することができます。 [http://perf4j.codehaus.org/devguide.html#Unobtrusive_Logging_with_Profiled_and_AOP](http://perf4j.codehaus.org/devguide.html#Unobtrusive_Logging_with_Profiled_and_AOP)。 –

+0

zk.xml設定でspring beanリゾルバを設定しましたか? –

関連する問題