Java @在新的简单Spring引导项目中未找到方面(编译时)

Java @在新的简单Spring引导项目中未找到方面(编译时),java,spring-boot,spring-aop,spring-tool-suite,Java,Spring Boot,Spring Aop,Spring Tool Suite,在Spring Boot中使用Spring AOP的所有示例(我已经找到)都是指创建一个方面/建议,如下所示: @Aspect @Component public class ExampleAspect { ... } 当我这样做时,我得到一个错误“方面无法解析为类型”。 其他与AOP相关的注释似乎都不可用。我使用的是SpringBoot1.5.8,SpringAOP在类路径上可用。我还需要做什么或向类路径添加什么才能启用SpringAOP?SpringAOP4.3.13的POM包

在Spring Boot中使用Spring AOP的所有示例(我已经找到)都是指创建一个方面/建议,如下所示:

@Aspect
@Component
public class ExampleAspect {

    ...

}
当我这样做时,我得到一个错误“方面无法解析为类型”。
其他与AOP相关的注释似乎都不可用。我使用的是SpringBoot1.5.8,SpringAOP在类路径上可用。我还需要做什么或向类路径添加什么才能启用SpringAOP?

SpringAOP4.3.13的POM包括

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

org.aspectj
aspectjweaver
1.8.9
编译
真的
由于此依赖项是可选的,因此必须在项目POM中显式列出。将它添加到我的项目POM(删除可选元素)解决了编译问题


或者,可以将spring boot aop starter POM指定为父POM,并显式地将spring aop和aspectjweaver列为依赖项。

您使用的是maven或Gradle之类的依赖项管理器吗?如果不尝试使用它们,因为spring aop本身将有许多依赖项等等,您需要找到它们并将它们全部添加到类路径。是的,应该提到这是由maven构建的。是的,它是可选的,因为对于spring aop,您不需要AspectJ weaver。您只需要在完整AspectJ、编译时或加载时使用它。实际上,对于编译时,也不需要weaver,只需要较小的运行时。但是我想开发人员只是想保持它的简单,因为weaver还包含运行时。当然,它是可选的,这是完全有道理的。我并不想暗示spring aop pom不应该存在问题,或者存在任何问题,只是我的问题的原因是aspectjweaver不在类路径上,需要在我的项目pom中显式地作为依赖项列出。