加上advice后一个方法多执行了两次,怎么回事

jimever 2012-05-03 04:17:58
用ssh2框架

spring配置:
<bean id="loginAdvice" class="com.project.security.LoginAdvice" />
<aop:config>
<aop:advisor pointcut="execution(public * com.project.web.*.*(..))" advice-ref="loginAdvice" />
</aop:config>

LoginAdvice代码:
public class LoginAdvice implements MethodInterceptor{
public Object invoke(MethodInvocation args) throws Throwable {
if (args.proceed() != null)
return args.proceed();
}
}

Action代码:
public String execute() throws Exception {
System.out.println("run execute()");
}
public String list() {
System.out.println("run list()");
}

这样页面访问Action的list方法时,execute和list都被执行了3次!!,去掉spring中的那些配置后又正常的执行1次了!
这是aop环绕侦听吗,我想设置方法执行前侦听,是不是就可以只执行1次目标方法了?
...全文
149 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jimever 2012-05-03
  • 打赏
  • 举报
回复
刚试了MethodBeforeAdvice 是可以执行1次了,但前置通知不能阻止方法执行。。
还是要用around通知,用around通知怎么让方法只执行1次?
lzx00800 2012-05-03
  • 打赏
  • 举报
回复
试试前置通知 MethodBeforeAdvice 接口

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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