Java AspectJ不适用于实现AsyncUncaughtExceptionHandler的类
我有以下课程:Java AspectJ不适用于实现AsyncUncaughtExceptionHandler的类,java,aop,aspectj,Java,Aop,Aspectj,我有以下课程: @Component public class AsyncExceptionHandler implements AsyncUncaughtExceptionHandler { @Override public void handleUncaughtException(Throwable ex, Method method, Object... params) { System.out.println("Error handling!");
@Component
public class AsyncExceptionHandler implements AsyncUncaughtExceptionHandler {
@Override
public void handleUncaughtException(Throwable ex, Method method, Object... params) {
System.out.println("Error handling!");
}
}
我有以下几方面:
@Before("execution(* org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler.handleUncaughtException(java.lang.Throwable, java.lang.reflect.Method, java.lang.Object...)) && "
+ "args(ex, method, params) && target(myapplication.exception.handler.AsyncExceptionHandler)")
public void asyncExceptionHandlerHandleUncaughtExceptionBefore(Throwable ex, Method method, Object... params) {
System.out.println("Aspect OK!");
}
我需要这方面,因为一个标准的方式登录到我的应用程序。
今天,这类方面有很多方面都在发挥作用!
只有这方面不起作用
问题:
params
相关的内容在我看来,您的切入点和建议声明(也是varargs部分)还不错。不过,我是AOP专家,不是Spring用户。但我对SpringAOP所知的是,有文档记录的限制,即不能将方面应用于其他方面。话虽如此,我不知道异常处理程序在Spring中是如何实现的。如果在内部使用AOP以某种方式包装它们,您可能确实达到了上述限制。但这纯粹是猜测
AsyncUncaughtExceptionHandler
确实驻留在名为org.springframework.aop.interceptor
的包中。如果您在GitHub上有一个for me,我想克隆它并四处查看/调试一下,因为这是一个有趣的问题。也许我可以为你否认或证实一些事情。