我将从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
。