在新的、简单的 Spring 引导项目中找不到 @Aspect(编译时)

@Aspect not found (compile-time) in new, simple Spring Boot Project

在 Spring Boot 中使用 Spring AOP 的所有示例(我发现)都指的是创建一个 Aspect/Advice,如下所示:

@Aspect
@Component
public class ExampleAspect {

    ...

}

当我这样做时,出现错误 "Aspect cannot be resolved to a type"。 None 其他 AOP 相关注释似乎也可用。我正在使用 Spring Boot 1.5.8 并且 spring-aop 在类路径上可用。我还需要做什么或添加到类路径以启用 Spring AOP?

spring-aop 4.3.13 的 POM 包括

<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.8.9</version>
    <scope>compile</scope>
    <optional>true</optional>
</dependency>

由于此依赖项是可选的,因此必须在您的项目 POM 中明确列出。将它添加到我的项目 POM(删除可选元素)解决了编译问题。

或者,spring-boot-aop-starter POM 可以指定为父 pom,并明确列出 spring-aop 和 aspectjweaver 作为依赖项。