Spring找不到AspectJ包



我将从Spring开始我的旅程,尝试在Spring 3.2中使用AspectJ。我正在阅读《春天在行动》一书。作者通过以下方式导入AspectJ包来使用AspectJ:

import org.aspectj.lang.annotation.Aspect

然而,使用它让我有

package org.aspectj.lang.annotation does not exist

我尝试将aspectj.jar(1.8.4版)导入到NetBeans中的库中,但没有任何效果。我有一打SPRING FRAMEWORK 3.2.3 RELEASE xxxxxx's。它仍然找不到包裹。是什么原因导致了这个问题?这是我的beans.xml 的开始

    <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.2.xsd
" xmlns:util="http://www.springframework.org/schema/util">
    <context:component-scan base-package="heyspring">
    </context:component-scan>
    <aop:aspectj-autoproxy>

我建议您转到Maven

即使您想在没有Maven的情况下工作,也要仔细阅读以下注释。

注意:即使在Maven Central Repository中,您也可以根据我在下面共享的依赖项下载所需的jars

完全确保您的pom.xml等效jars文件中有以下内容:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aop</artifactId>
    <version>${springframework.version}</version>
</dependency>

以下是强制性

<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjrt</artifactId>
    <version>${aspectj.version}</version>
</dependency>
<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>${aspectj.version}</version>
</dependency>

当然,您必须为Spring和AOP设置或配置每个版本。

我有这三个依赖项,在我的项目中工作得很好。

出于我的原因,在从Maven Repository复制时使用<scope>(https://mvnrepository.com/artifact/org.aspectj/aspectjrt/1.9.9.1)。


    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjrt</artifactId>
      <version>1.9.9.1</version>
<!--      <scope>runtime</scope>-->
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjweaver</artifactId>
      <version>1.9.9.1</version>
<!--      <scope>runtime</scope>-->
    </dependency>

我评论了<scope>...</scope>标签,这可能只针对runtime,这就是为什么ide找不到它的repos。删除后,它开始工作,或者我们可以添加compile

最新更新