错误代码位置
package com.xy.aop;
import org.aspectj.lang.JoinPoint;
public class AspectJAop {
//实现五个增强通知的方法
public void beforeHandler(JoinPoint jp){
}
public void afterHandler(JoinPoint jp,Object ret){
}
public void afteringHandler(JoinPoint jp){
}
public void exceptionHandler(JoinPoint jp,Exception ex){
}
public void around(JoinPoint jp){
}
}
一、用到这个接口小伙伴们应该是在进行aspcctJ的学习
造成上述的原因我总结有三个原因:
1.你用的开发软件还没来得及编译
2.没有导入对应的依赖
3.在pom.xml文件中导入时设置了scope属性
二、对应解决
1.你用的开发软件还没来得及编译,点击Invalidate Caches--》Invalidate and Restart重新启动(针对于idea)
2.没有导入对应的依赖
//aspectJ是依赖于aspectjweaver
<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjrt -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.9.4</version>
<scope>runtime</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.7</version>
<scope>runtime</scope>
</dependency>
//通俗点就是这两个你都需要导入到你的项目中
3.在pom.xml文件中导入时设置了scope属性,下面的scope属性值决定了你在什么时候可以用你导入的jar包,就比如runtime只在运行时使用,如JDBC驱动,适用运行和测试阶段,但是你在写代码的时候还没有运行,那么你的开发软件自然就找不到你的接口
<dependency>中<scope>,它主要管理依赖的部署。
目前<scope>可以使用的值(用于maven项目里的pom.xml文件引入对应jar时设置的):
compile:缺省值,适用于所有阶段,会随着项目一起发布。
provided:类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
runtime:只在运行时使用,如JDBC驱动,适用运行和测试阶段。
test:只在测试时使用,用于编译和运行测试代码。不会随项目发布。
system:类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。