aop碰到个很诡异的问题

DokiSakiKurumi 2015-05-21 12:09:43
明明声明了@After 对controller的切面,我在切面和方法里都打了断点,很多时候访问controller方法时会先跳到后置通知的方法里,然后才是controller里,然后再到到后置通知方法里,也就是变成了环绕通知。有几个controller方法路径倒是一直是后置通知没问题。
我都搞糊涂了,别人的项目拿来我要添加个切面进去,遇到这种问题,实在没头绪。有大神说说这可能的原因吗,无从下手啊。另外说一下,我再昨天也是按我现在这么做的给一个项目添加切面都没遇到这问题。
...全文
139 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
DokiSakiKurumi 2015-05-25
  • 打赏
  • 举报
回复
解决了,简单,但是没想到。很多controller里都有@ModelAttribute标注的方法,每次调用方法会先执行这个方法,而没过滤掉导致这次的问题。
Inhibitory 2015-05-21
  • 打赏
  • 举报
回复
引用 2 楼 u010779899 的回复:
[quote=引用 1 楼 Inhibitory 的回复:] 别人的是java文件还是class文件?
就是一整个项目,还未编译过的java文件[/quote] 还没遇到过这么诡异的问题,如果是class的话有可能是IDEA计算行数不对
DokiSakiKurumi 2015-05-21
  • 打赏
  • 举报
回复
如果换成前置通知的话,前置会被执行2次,再跳到controller里去,也就是说这多出来的一次前置,不知道怎么来的
DokiSakiKurumi 2015-05-21
  • 打赏
  • 举报
回复
有些controller请求时的的确确是后置通知,有些是环绕,应该是大部分是环绕通知。可以又不可以的,真的好难懂
DokiSakiKurumi 2015-05-21
  • 打赏
  • 举报
回复
引用 1 楼 Inhibitory 的回复:
别人的是java文件还是class文件?
就是一整个项目,还未编译过的java文件
Inhibitory 2015-05-21
  • 打赏
  • 举报
回复
别人的是java文件还是class文件?

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧