spring-boot - 为什么我的 @Aspect 无法被我的 SpringBoot 应用程序识别?
问题描述
我想用 spring boot 测试 AOP,因此我在我的
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
然后我创建了两个类,一个用于配置,另一个负责编织方面。
AspectConfig.class
@Configuration
@EnableAspectJAutoProxy
@ComponentScan("com.douineau.aspect")
public class AspectConfig {
}
而另一个类,除了测试它是否运行良好之外没有什么特别的:
ControllerAspect.class
@Aspect
@Component
public class ControllerAspect {
@Pointcut("execution(* com.douineau.aspect.ControllerAspect.testAop(..))")
public void callingRequest() {
System.out.println("Pointcut method done");
}
@Before("callingRequest()")
public void beforeAdvice( ) {
System.out.println("Before advice");
}
public void testAop() {
System.out.println(getClass().getName());
}
}
当我调用方法c.testAop()
时,它应该callingRequest()
使用参数化@Pointcut("execution(* com.douineau.aspect.ControllerAspect.testAop(..))")
注释输入方法。
但它不...
@EnableAspectJAutoProxy
另一件要真正理解的事情是,将注释直接@SpringBootApplication
放在主 SpringBoot 启动器之后会更相关吗?
谢谢您的帮助。
乔斯
解决方案
推荐阅读
- java - 如何使用 Raster 读取 WritableImage 的每个像素?
- c# - 如何在 C# 中通过 socks 代理连接到服务器?
- ios - 如何在 Mac / iOS 上制作 cordova 以停止在 config.xml 和 package.json 的插件版本号中添加插入符号 (^)
- c++ - 是否可以调用 std::invoke 使其可以与函数指针一起使用?
- android - Unity SQLite 连接无法打开数据库文件
- go - 将 html 文件复制到供应商文件夹
- c - 读取文件,然后将其排序为 10 列
- c - 我正在尝试验证用户输入。但是如果我输入了一个无效字符,程序就会进入一个无限循环
- python - 如何替换列中按索引排序的 3 个最大值
- python - 使用 groupby、列表推导和自定义函数创建代码时理解逻辑的问题