无法在Spring Boot项目中解析Spring AOP类型

时间:2018-09-12 06:56:36

标签: java spring-boot import spring-aop

我创建了一个新的Spring引导项目,并试图实现一些AOP问题。

但是,我的代码根本无法识别AOP中的类。我检查并确认spring-aop-5.0.7.RELEASE.jar确实存在于Maven依赖项和JRE运行时库中。

我的代码还很简单:

@Aspect
@Component
public class LoggingAspect {

     @Around("execution(*  com.springboot.service.*(..)) ")
      public Object logAround(ProceedingJoinPoint joinPoint ) throws Throwable {

      }
}

但是在这段代码Aspect cannot be resolved to a type中,其他注释和类(例如Joinpoint@Around)也是如此。其他Spring注释和类也可以正常工作。 @ Component,@ Controllers等。项目本身无需AOP就可以正常运行。

我已经尝试清理并重建项目。

我可能会缺少什么。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

@Aspect位于spring-aspects.jar或其依赖项之一中。将其添加为依赖项:

<!-- https://mvnrepository.com/artifact/org.springframework/spring-aspects -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aspects</artifactId>
    <version>5.0.7.RELEASE</version>
</dependency>

答案 1 :(得分:1)

@Aspect@Around(以及其他类似的注释)是optional compile dependency in your version of spring-aoporg.aspectj aspectjweaver工件的一部分。

您必须明确地包含它

<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.8.13</version>
</dependency>