0

私は2つのクラスを持っています

AbstractWorkFlow

ProductionWorkFlow 

AbstractWorkFlowexecuteWorkFlowでオーバーライドしていないメソッドを完全に実装していProductionWorkFlowます。

今、Spring AOP をProductionWorkFlow.executeWorkFlowメソッドに追加しています。

<aop:pointcut id="businessService"
         expression="execution(* ProductionWorkFlow.executeWorkFlow())" />
<aop:around pointcut-ref="businessService"  method="log"/>

しかし、 executionWorkFlow が実行されても、私のアスペクトはトリガーされないようです。この問題に関する任意のアイデア。

4

1 に答える 1

4

ポイントカットを次のように置き換えてみてください。

execution(* AbstractWorkflow+.executeWorkflow());

ProductionWorkFlowがオーバーライドされていないためexecuteWorkFlow、存在しないため、アドバイスは一致execution(* ProductionWorkFlow.executeWorkflow())しません。

ProductionWorkFlow他の実装ではなくのみをアドバイスしたい場合は、次のように変更します。

execution(* AbstractWorkFlow+.executeWorkflow()) && target(ProductionWorkFlow);
于 2012-07-26T11:16:48.167 に答える