Я пытаюсь настроить Spring так, чтобы он выполнял рекомендации, когда выдается определенный подкласс исключения (MyTestException
):
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.
}
}
И XML-конфигурация:
<bean name="interceptor" class="org.me.myproject.MyTestExceptionInterceptor"/>
<aop:config>
<aop:advisor advice-ref="interceptor" pointcut="execution(???)"/>
</aop:config>
У меня есть ощущение, что я должен использовать спецификатор pointcut target
(вместо execution
), поскольку, согласно Spring docs - кажется, что target
позволяет мне указать тип исключения для сопоставления, но я не уверен, что это неправильно, или что должен выглядеть мой атрибут pointcut
как.
Я бы настоятельно предпочел бы, чтобы конфигурация AOP выполнялась в XML (в отличие от Java/аннотаций, но я, вероятно, мог бы перевести решение на основе аннотаций в XML, если это необходимо.