Spring AOP進行切面攔截@Aspect
阿新 • • 發佈:2018-12-04
package com.xyz.axy.aspect; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Pointcut; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import com.xyz.axy.domain.entity.WeuiEntity; @Aspect @Component public class LogAspect { private final static Logger logger=LoggerFactory.getLogger(LogAspect.class); @Pointcut("execution(* com.xyz.axy.service.*.*(..))") public void pointcutName(){} // @Before("pointcutName()") // public void before(JoinPoint joinPoint){ // logger.info("before"); // Object[] args =joinPoint.getArgs(); // for (Object object : args) { // logger.info("before引數:"+object.toString()); // } // } @Around("pointcutName()") public Object around(ProceedingJoinPoint joinPoint) { logger.info("========獲取引數開始========="); Object[] args = joinPoint.getArgs(); for (Object object : args) { if (object instanceof WeuiEntity) { WeuiEntity we = (WeuiEntity) object; logger.info(we.getMsg()); logger.info(we.getTitle()); } else { logger.info("around引數:" + object.toString()); } } logger.info("========獲取引數結束========="); Object result = null; logger.info("around1"); try { result = joinPoint.proceed(); } catch (Throwable e) { e.printStackTrace(); } logger.info("around2"); return result; } // @After("pointcutName()") // public void after(JoinPoint joinPoint) { // logger.info("after"); // Object[] args =joinPoint.getArgs(); // for (Object object : args) { // logger.info("after引數:"+object.toString()); // } // } }