0

春に次の AOP 構成を定義しました。

<aop:config>
   <aop:aspect ref="aopAdvice">
        <aop:around
            pointcut="execution(* com.bis.client.auto.ClientHandler.sendCanonical(..))"
            method="methodDuration"/>

    </aop:aspect>
    <aop:aspect ref="aopAdvice">
        <aop:around
            pointcut="execution(public * com.bis.client.auto.MessageHandlerImpl.messageArrived(..))"
            method="methodDuration"/>
    </aop:aspect>
</aop:config>

基本的には、sendCanonical メソッドまたは message メソッドが呼び出されたときに methodDuration メソッドが呼び出されるようにします。

問題は、これらのメソッドが呼び出されることを 100% 確信しているにもかかわらず、アドバイスが呼び出されないことです。

何か案は?

4

1 に答える 1

0

定義されていることを確認してください。また、他のすべての構成が springsource のドキュメントで定義されているものと同じであることを確認してください。

上記に問題がなければ、ポイントカットを「execution(public * *(..))」に変更します。これにより、すべてのクラスのすべてのパブリック メソッドがカットされます。これを行うことで、アプリ内のすべてのパブリック メソッドに対して AOP アドバイスを呼び出す必要があります。これが正常に機能する場合は、構成が正しいことを意味します。これが機能しない場合は、構成が適切でないことを確認してください。構成を変更して、この手順を試してください。

上記のステップが正常に機能したら、最初にクラス名を追加する(これにより、そのクラスのすべてのパブリックメソッドをカットする必要があります)、次にメソッド名などを追加するなど、ゆっくりと1つずつポイントカットを変更します.

頑張ってください!!!!!

于 2012-11-15T11:03:50.653 に答える