zoukankan      html  css  js  c++  java
  • spring-aop 进不了切面方法的解决办法

    首先,我在项目中使用aop是打算记录用户操作日志的:登录、登出、修改密码等;

    思路就是在controller方法上增加自定义注解,然后在切面类中增加切点Pointcut(@annotation(自定义的注解)),然后在进方法前把用户信息记录好,用的是@Before()

    因为是用注解,所以配置方面比较简单,如下:

    <aop:aspectj-autoproxy proxy-target-class="true"/>
    <context:component-scan base-package="com.test.aspect" />

    然后将注解添加在需要记录的方法上面

    这里说一下,如果需要拿到注解里面的值,可以通过对切面方法进行入参,例如:注解为@Log ,切面方法入参写法为public void recordLog(Log log) ,
    @Before(@annotation(log)),也就是方法的入参名,与注解名首字母小写一致。

    其他的就不多说,这里说一下踩得大坑!!!

    一切准备就绪,启动项目,按道理是要先进@Before修饰的方法的,但是每一次都直接跳到切点方法去了,在网上也看了很多文章,不行;问同事,同事还拿他的demo给我看了,一样的,但也不知道为啥
    我的不行;就这么搞了一天;

    后面还是在网上看到的,真的找了好久:原因是我把
    <aop:aspectj-autoproxy proxy-target-class="true"/>
    <context:component-scan base-package="com.test.aspect" /> 这里的配置配到了spring的配置文件applicationContext.xml中了,而不是在springMVC的配置文件springmvc-servlet.xml
    中,这样的话启动,代理对象不生效;后面改了,就好了。记录一下(我也不知道原因,有知道的老铁麻烦评论留言,谢谢!)
  • 相关阅读:
    二叉树的建树,按层遍历,结点总数,页结点,深度以及三序非递归遍历二叉树,建立中序线索二叉树
    志愿者选拔(单调队列)
    重建二叉树(中后序求前序)
    New Year Table(几何)
    Hopscotch(细节)
    红黑树(中序二叉树)
    Linux-awk命令详解
    Python--常用模块
    Python--re模块
    Python--模块与包
  • 原文地址:https://www.cnblogs.com/mmh760/p/11650435.html
Copyright © 2011-2022 走看看