问答详情
源自:5-4 Advice应用(上)

aop after-returning 和after的区别?

aop after-returning 和after的区别? 难道只是执行顺序的先后问题呢?大家都是在方法执行后返回,区别在哪里呢

提问者:linda1048195 2015-04-25 22:05

个回答

  • Ajayy
    2020-12-07 14:36:21

    @Override

    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {

       Object result;

       try {

           //@Before

           result = method.invoke(target, args);

           //@AfterReturning

           return result;

       } catch (InvocationTargetException e) {

           Throwable targetException = e.getTargetException();

           //@AfterThrowing

           throw targetException;

       } finally {

           //@After

       }

    }


  • xzw_hahah
    2020-09-27 17:36:51

    兄弟,到底哪个版本是对的???????

  • qq_辣个蓝人_03894732
    2017-07-25 10:06:47

    阿萨德


  • _dnf
    2017-05-02 14:23:39

    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
       Object result;
       try {
           //@Before
           result = method.invoke(target, args);
           //@After
           return result;
       } catch (InvocationTargetException e) {
           Throwable targetException = e.getTargetException();
           //@AfterThrowing
           throw targetException;
       } finally {
           //@AfterReturning
       }
    }

  • ilikeWaltz
    2016-12-23 22:59:57

    try{
    	try{
    		//@Before
    		method.invoke(..);
    	}finally{
    		//@After
    	}
    	//@AfterReturning
    }catch(){
    	//@AfterThrowing
    }


  • 江湖上
    2016-08-19 06:26:14

    try
    {
        //  执行前置通知;
        
        //  执行目标方法;
        
        // 执行返回通知;
    }
    catche(Exception e)
    {
        // 执行异常通知;
    }
    finally
    {
        // 执行后置通知;
    }

    应该是这样的...

  • 悦溪
    2016-07-27 15:23:52

       //限定了返回值,可不写,注意如果出现异常,则该设定不起作用,after returing对应的方法不被执行

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

        //after的执行是在after returning之后,但无论方法是否正常结束, after通知都会被执行

         <aop : after  method = ""  pointcut =  " " />


  • 好帮手慕珊
    2015-04-27 11:16:17

     after 对应 target 执行之后, afterReturning  对应在 target 处理后结果返回增强处理

    可以看老师例子中after-returning和after对应的输出内容进行对比