【sping揭秘】15、afterreturning

时间:2023-12-10 21:09:50

@afterreturning

我们同理写几个测试类

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 AterReturningTestBean { private static final Log logger = LogFactory.getLog(AterReturningTestBean.class); public void aterReturningTest() {
logger.info("aterReturningTest sds");
} public int aterReturningTestInt() {
logger.info("aterReturningTestInt"); return 666;
} }

写几个测试的拦截器

package cn.cutter.start.aop;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
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 AterReturningAspect { private static final Log logger = LogFactory.getLog(AterReturningAspect.class); //execution(* cn.cutter.start.bean.BeofreTestBean.*(..))
@Pointcut("execution(* cn.cutter.start.bean.AterReturningTestBean.*(..))")
private void pointCut1() {} @AfterReturning(pointcut="pointCut1()", returning="value1")
public void testReturn1(int value1) { logger.info("返回拦截:" + value1); } @AfterReturning(pointcut="pointCut1()")
public void testReturn2() { logger.info("返回拦截:没有参数"); } }

结果:

@Test
public void testAop4() {
ApplicationContext ctx = this.before(); AterReturningTestBean att = (AterReturningTestBean) ctx.getBean("aterReturningTestBean"); // att.aterReturningTest(); att.aterReturningTestInt(); }

【sping揭秘】15、afterreturning