SpringAop实现前置方法,遇到error at ::0 can't find referenced pointcut以及无法找到元素aop:aspect-autoproxy

最近在跟着网易云课堂的spring课程学习,学到第17节使用springAOP实现方法拦截,执行前置方法时,遇到了问题,首先是提示

bean.xml文件里无法找到元素aop:aspect-autoproxy,关于这个,需要在xml文件里添加命名空间以及引入相关文件,但是注意这里有顺序要求、

http://www.springframework.org/schema/aop  
http://www.springframework.org/schema/aop/spring-aop.xsd

这两行一定要紧挨着,不可以和其他的交错,正确的顺序如下所示

<?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.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop  
        http://www.springframework.org/schema/aop/spring-aop.xsd">
       <aop:aspectj-autoproxy/>   
       
       <bean id="myInterceptor" class="Service.MyInterceptor"></bean>
       <bean id="personService" class="Service.impl.PersonServiceBean"></bean>
         
</beans>

这个问题解决后,又遇到了error at ::0 can't find referenced pointcut这个问题

网上查了下,原因是使用的aspectjrt.jar和aspectjweaver.jar两个文件的版本和JDK的版本不符合,JDK版本高的话,对应的要求这两个jar包文件版本要高,具体是哪个引起的我没有细看,而是直接去官网下载了最新的aspectj-1.8.4.jar

下载地址

http://www.eclipse.org/aspectj/downloads.php

这里注意下,下载下来的是一个可运行jar包,需要在命令行里面使用java -jar aspectj-1.8.4.jar 安装这个文件,选择的安装目录下会生成lib目录,里面有四个jar文件,然后再将这几个jar文件添加到UserLibrary,在我这里就是专门为学习spring简历的一个用户库


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值