gpt4 book ai didi

java - 为什么抛出异常时我的方面代码不运行?

转载 作者:太空宇宙 更新时间:2023-11-04 09:49:04 25 4
gpt4 key购买 nike

在我的 spring 项目中,我添加了两个依赖项:

<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.9.2</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.2</version>
</dependency>

然后我创建了一个类:

package com.my.company.package.handling;

@Aspect
public class MyAspect {
@AfterThrowing(pointcut = "execution(* com.my.company.package.*(..))", throwing = "ex")
public void logAfterThrowing(Exception ex) {
System.out.println("exception "+ex.getLocalizedMessage())
}
}

现在在其他一些类中(存储在包中:com.my.company.package.someOtherPackage)我抛出异常:

throw new IOException("here comes error");

但是我在控制台中看不到方面方法的打印输出。我在这里缺少什么?

最佳答案

假设其他一切都是正确的,您还需要一个 @Component 注释,您还需要在任何类的执行字符串中另一个 * 。

@Aspect
@Component
public class MyAspect {
@AfterThrowing(pointcut = "execution(* com.my.company.package.*.*(..))", throwing = "ex")
public void logAfterThrowing(Exception ex) {
System.out.println("exception "+ex.getLocalizedMessage())
}
}

这是一个工作 example

关于java - 为什么抛出异常时我的方面代码不运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55023224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com