为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的输入结果和视频里的不一样?(Around advice)

我的输出结果(代码是一样的):

MoocAspect before.

MoocAspect aroud 1.

AspectBiz biz.

MoocAspect afterReturning.

MoocAspect after.

MoocAspect aroud 2.

正在回答

5 回答

因为是随机的,你可以用order设置顺序,详见spring文档。文档中的finally仅仅表示一定会被执行,并不代表最后被执行

0 回复 有任何疑惑可以回复我~

public void before()

{

System.out.println("MoocAspect before.");

}

public void afterReturning()

{

System.out.println("MoocAspect afterReturning.");

}

public void afterThrowing()

{

System.out.println("MoocAspect afterThrowing.");

}

public void after()

{

System.out.println("MoocAspect after.");

}

public Object around(ProceedingJoinPoint pjp)

{

Object obj = null;

try

{

System.out.println("MoocAspect aroud 1.");

obj = pjp.proceed();

System.out.println("MoocAspect aroud 2.");

} catch (Throwable e)

{

e.printStackTrace();

}

return obj;

}

0 回复 有任何疑惑可以回复我~

你定义的顺序和结果是一样的么?你看一下你的定义顺序,都是按定义的顺序执行的。

0 回复 有任何疑惑可以回复我~
#1

砂锅饭喽 提问者

定义顺序是指moocAspect这个类中的顺序吗?这个类中方法的顺序和视频中是一样的
2015-03-04 回复 有任何疑惑可以回复我~
#2

Coda 回复 砂锅饭喽 提问者

是的,就是moocAspect
2015-03-04 回复 有任何疑惑可以回复我~
#3

砂锅饭喽 提问者 回复 Coda

moocAspect中代码已贴出,顺序为before,afterReturning,afterThrowing,after,around
2015-03-04 回复 有任何疑惑可以回复我~

配置文件如下:

<?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: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/aop

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

">

<bean id="moocAspect" class="com.yxq.aop.MoocAspect"></bean>

<bean id="aspectBiz" class="com.yxq.aop.AspectBiz"></bean>

<aop:config>

  <aop:aspect id="moocAspectAOP" ref="moocAspect">

     <aop:pointcut expression="execution(* com.yxq.aop.*Biz.*(..))" id="moocPointcut"/>

     <aop:before method="before" pointcut-ref="moocPointcut"/>

     <aop:after-returning method="afterReturning" pointcut-ref="moocPointcut"/>

     <aop:after-throwing method="afterThrowing" pointcut-ref="moocPointcut"/>

     <aop:after method="after" pointcut-ref="moocPointcut"/>

     <aop:around method="around" pointcut-ref="moocPointcut"/>

  </aop:aspect>

</aop:config>

</beans>

0 回复 有任何疑惑可以回复我~

你的配置文件也要和视频的一样

0 回复 有任何疑惑可以回复我~
#1

砂锅饭喽 提问者

我觉得我的配置文件和视频上的应该是一样的,除了Spring版本不一致,配置文件已贴出
2015-03-04 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我的输入结果和视频里的不一样?(Around advice)

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信