Spring boot SpringAOP使用aspectj-如何记录内部方法?如何在方面类中包含最后的方法调用?AOP中正确的异常处理

Spring boot SpringAOP使用aspectj-如何记录内部方法?如何在方面类中包含最后的方法调用?AOP中正确的异常处理,spring-boot,spring-aop,Spring Boot,Spring Aop,我使用Spring AOP进行日志记录服务,遇到3个问题: 内部方法日志记录: 参考代码: 要在代理中包括最终方法,请执行以下操作: 按照pmd、checkstyle和findbugs中提到的代码标准,我们不能更改方法的final关键字。我尝试了接口和连接到呼叫,但没有工作 处理异常,然后返回服务本身以获取实际响应 @财务总监/人 公众人物getpersonInfo{ 试一试{ // ... getValidPerson; 返回响应;//包含人员信息的响应 } 捕获异常{ return resp

我使用Spring AOP进行日志记录服务,遇到3个问题:

内部方法日志记录: 参考代码:

要在代理中包括最终方法,请执行以下操作: 按照pmd、checkstyle和findbugs中提到的代码标准,我们不能更改方法的final关键字。我尝试了接口和连接到呼叫,但没有工作

处理异常,然后返回服务本身以获取实际响应

@财务总监/人 公众人物getpersonInfo{ 试一试{ // ... getValidPerson; 返回响应;//包含人员信息的响应 } 捕获异常{ return response;//说明异常条件的响应 } } 请包括你的宝贵建议

如果您谈论的是这样的。没有这个,someOtherMethod是相同的。它不起作用,因为您没有使用代理。因此,要么将Spring配置为公开代理对象,并在对其调用方法之前手动获取对代理的引用,要么从Spring AOP切换到

从技术上讲,代理在运行时生成一个子类。但不能扩展final类,也不能重写final方法。因此,您无法使用代理来处理它们。同样,如果您认为需要这个,请切换到完整的AspectJ

这可以在@Around建议中完成,如下所示:

@在。。。你的切入点。。。 公共对象MyAdvice最终处理接合点此接合点抛出可丢弃{ System.out.printlnthisJoinPoint; 试一试{ 返回此连接点。继续; } 捕获异常e{ e、 打印跟踪; 返回其他对象; } }
我回答了你的问题,因为我碰巧知道所有的答案。但是Spring手册也知道这些。因此,请在问像StackOverflow这样的简单问题之前先进行RTFM。与软件开发相关的代码和concreate问题也是如此。因此,也请学习并提供一个完整的答案。非常感谢。