[sping reveal] 16. @After (finally) But this is executed before afterturning

package cn.cutter.start.bean;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Component;

@Component
public  class AterTestBean {

    private static final Log logger = LogFactory.getLog(AterTestBean.class);

    public  void aterTest() {
        logger.info("aterTest sds");
    }
    
    public int aterTestInt(int value1) {
        logger.info("aterTestInt");
        
        return 666;
    }
    
}

 

package cn.cutter.start.aop;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

/**
 *
 * @author xiaof
 *
 */
@Component
@Aspect
public class AterAspect {

    private static final Log logger = LogFactory.getLog(AterAspect.class);
    
    //execution(* cn.cutter.start.bean.BeofreTestBean.*(..))
    @Pointcut("execution(* cn.cutter.start.bean.AterTestBean.*(..))")
    private void pointCut1() {}
    
    
    @After("pointCut1()")
    public void testReturn2() {
        
        logger.info( "return finally final interception: no parameters" );
        
    }
    
}

 

    @Test
    public void testAop5() {
        ApplicationContext ctx = this.before();
        
        AterTestBean att = (AterTestBean) ctx.getBean("aterTestBean");
        
        
        att.aterTest ();
        
//         att.aterTest ();
//         att.aterTestInt (7777); 
        
    }

 

result:

 

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325222717&siteId=291194637