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
    中,这样的话启动,代理对象不生效;后面改了,就好了。记录一下(我也不知道原因,有知道的老铁麻烦评论留言,谢谢!)
  • 相关阅读:
    JIRA Activity Stream连接到FishEye时路径不对
    职业分析
    Doublechecked locking解析
    Wireshark基本介绍和学习TCP三次握手
    插入排序算法
    Event.observe
    前端开发工程师如何在2013年里提升自己
    addEventListener(转)
    最好的HTML 5编码教程和参考手册分享
    XSRF 的攻击与防范
  • 原文地址:https://www.cnblogs.com/mmh760/p/11650435.html
Copyright © 2011-2022 走看看