无法将Spring坡向注记解析为类型

iyr7buue  于 2023-02-03  发布在  Spring
关注(0)|答案(3)|浏览(118)

你好,我正在尝试使用spring注解和AspectJ实现一个方面,但是我一直收到错误Aspect cannot be resolve to a type
下面是我的pom.xml:

<dependencies>
    <!-- Spring -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${org.springframework-version}</version>
        <exclusions>
            <!-- Exclude Commons Logging in favor of SLF4j -->
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>4.3.7.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>4.3.7.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>4.3.7.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>4.1.4.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjrt</artifactId>
        <version>1.6.11</version>
    </dependency>
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>1.6.11</version>
    </dependency>

还有我的伐木课

package com.stock.mvc.aspect;

@Aspect
public class LoggingAspect {

  @before("execution(* * getRadius())")
  public void loggingAdvice(){
    System.out.println("call method before getRadius");
  }
}
rur96b6h

rur96b6h1#

对我来说,错误是@Aspect和@Before没有解析为类型。
另外,也没有调用org.aspectj库。
所以基本上,问题是依赖性没有被识别出来。
这些是实现aspectJ库所需的唯一依赖项。

<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjrt</artifactId>
    <scope>runtime</scope>
</dependency>

<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <scope>runtime</scope>
</dependency>

通过删除pom.xml文件中的运行时范围解决了该问题。

<scope>runtime</scope>

然后我的库得到了认可,@Aspect现在工作正常。

emeijp43

emeijp432#

尝试添加这些依赖项:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aspects</artifactId>
</dependency>

<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
</dependency>
amrnrhlw

amrnrhlw3#

XXX无法解析为类型。
...听起来很像编译器错误消息,* 典型 * 是缺少import语句(IDE“Source”菜单中的“organize imports”):

package com.stock.mvc.aspect;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;

@Aspect public class ...

AND @Before区分大小写,并写成驼峰式大小写。

相关问题