Ich versuche, Spring so zu konfigurieren, dass es Ratschläge ausführt, wenn eine bestimmte Ausnahme-Unterklasse ( MyTestException
) geworfen wird:
public class MyTestExceptionInterceptor implements ThrowsAdvice {
public void afterThrowing(Method method, Object[] args, Object target, Exception exc) {
// I want this to get executed every time a MyTestException is thrown,
// regardless of the package/class/method that is throwing it.
}
}
Und die XML-Konfiguration:
<bean name="interceptor" class="org.me.myproject.MyTestExceptionInterceptor"/>
<aop:config>
<aop:advisor advice-ref="interceptor" pointcut="execution(???)"/>
</aop:config>
Ich habe das Gefühl, ich sollte die target
Pointcut-Spezifikation (anstelle von execution
), da - laut der Frühlingsdokumente - es scheint, als ob target
erlaubt es mir, die Art der Ausnahme anzugeben, gegen die abgeglichen werden soll, aber ich bin mir nicht sicher, ob das falsch ist, oder was meine pointcut
Attribut muss wie folgt aussehen.
Ich würde sehr Ich ziehe es vor, die AOP-Konfiguration in XML zu halten (im Gegensatz zu Java/Anmerkungen, aber ich könnte wahrscheinlich eine annotationsbasierte Lösung in XML übersetzen, wenn es nötig ist.