3
以下のSpringの構成で、Cronsクラスのすべてのメソッド呼び出しを傍受し、その前に実行するように、メソッドexecuteBefore()
を持つBaseCronという名前のBeanを作成しました。Springでメソッドの実行を停止する方法AOP
executeBefore()
メソッドにはいくつかのバリデーションがあります。私は特定の条件を早期に検証していましたが、それが偽であれば例外を投げていました。この例外が発生するとメソッドが失敗し、Cronsクラスのメソッドが実行されませんでした。
正常に動作しています。
私は例外を投げずにCronsクラスの実行を止めることができる他の方法を提案できますか?私はリターンを試みたが、うまくいかなかった。
<bean id="baseCronBean" class="com.myapp.cron.Jkl">
</bean>
<aop:config>
<aop:aspect id="cron" ref="baseCronBean">
<aop:pointcut id="runBefore" expression="execution(* com.myapp.cron.Abc.*.*(..)) " />
<aop:before pointcut-ref="runBefore" method="executeBefore" />
</aop:aspect>
</aop:config>
のABCクラス:
public class Abc {
public void checkCronExecution() {
log.info("Test Executed");
log.info("Test Executed");
}
}
JKLクラス:
public class Jkl {
public void executeBefore() {
//certain validations
}
}
のおかげのようなものへの側面(と関連する構成)。しかし、他のことが実行されると、私はもっと混乱しました。それはアドバイスされた方法に移行しませんか? pjp.proceed()を呼び出すと、アドバイスされたメソッドだけに行きますか?ありがとう。 –
それは働いた!ありがとう。 –
喜んで:) –