springboot-AOP

来源:互联网 发布:模特接单软件 编辑:程序博客网 时间:2024/05/18 02:14

springboot-AOP

  • springboot-AOP
    • 创建切面方式一
    • 创建切面方式二抽取切点出来减少重复代码

创建切面方式一:

@Aspect@Componentpublic class HttpAspect {   @Before("execution(public * com.example.HelloController.*(..))")   public void logBefore() {       System.out.print("logBefore");   }   @After("execution(public * com.example.HelloController.*(..))")   public void logAfter() {       System.out.print("logAfter");   }}

创建切面方式二:(抽取切点出来,减少重复代码)

@Aspect@Componentpublic class HttpAspect {   @Pointcut("execution(public * com.example.HelloController.*(..))")   public void log() {   }   @Before("log()")   public void logBefore() {       System.out.print("logBefore");   }   @After("log()")   public void logAfter() {       System.out.print("logAfter");   }}
@Aspect@Componentpublic class HttpAspect {    public static Logger logger = LoggerFactory.getLogger(HttpAspect.class);    @Pointcut("execution(public * com.example.HelloController.*(..))")    public void log() {    }    @Before("log()")    public void logBefore(JoinPoint joinPoint) {        logger.info("logBefore");        ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();        HttpServletRequest request = servletRequestAttributes.getRequest();        logger.info("url={}", request.getRequestURL());        logger.info("method={}", request.getMethod());        logger.info("ip={}", request.getRemoteAddr());        logger.info("class.method={}", joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName());        logger.info("args={}", joinPoint.getArgs());    }    @After("log()")    public void logAfter() {        logger.info("logAfter");    }    @AfterReturning(returning = "object", pointcut = "log()")    public void logAfterReturning(Object object) {        logger.info("response={}", object.toString());    }}输出日志:logBeforeurl=http://localhost:8080/updatePersonmethod=PUTip=0:0:0:0:0:0:0:1class.method=com.example.HelloController.updatePersonargs=10m person person0_ where person0_.id=?logAfterresponse=com.example.Person@34b98c82



原创粉丝点击