當前位置:
首頁 > 知識 > spring boot aop 方法請求參數日誌列印

spring boot aop 方法請求參數日誌列印

1.引入starter

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-aop</artifactId>

</dependency>

2.切面代碼

package com.util;

import javax.servlet.http.HttpServletRequest;

import org.apache.log4j.Logger;

import org.aspectj.lang.JoinPoint;

import org.aspectj.lang.annotation.After;

import org.aspectj.lang.annotation.AfterReturning;

import org.aspectj.lang.annotation.Aspect;

import org.aspectj.lang.annotation.Before;

import org.aspectj.lang.annotation.Pointcut;

import org.springframework.stereotype.Component;

import org.springframework.web.context.request.RequestContextHolder;

import org.springframework.web.context.request.ServletRequestAttributes;

import com.alibaba.fastjson.JSON;

@Aspect

@Component

public class RequestAspect {

private Logger logger = Logger.getLogger(RequestAspect.class);

@Pointcut("execution(public * com.web.controller.*.*(..))")

public void log(){}

@Before("log()")

public void exBefore(JoinPoint joinPoint){

ServletRequestAttributes sra = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();

HttpServletRequest request = sra.getRequest();

logger.info("url:"+request.getRequestURL());

logger.info("method:"+request.getMethod());

logger.info("class method:"+joinPoint.getSignature().getDeclaringTypeName()+"."+joinPoint.getSignature().getName());

logger.info("args:"+JSON.toJSONString(joinPoint.getArgs()));

}

@After("log()")

public void exAfter(JoinPoint joinPoint){

logger.info("class method:"+joinPoint.getSignature().getDeclaringTypeName()+"."+joinPoint.getSignature().getName()

+"方法執行完畢!");

}

@AfterReturning(returning="result",pointcut="log()")

public void exAfterReturning(Object result){

logger.info("執行返回值:"+JSON.toJSONString(result));

}

}

spring boot aop 方法請求參數日誌列印

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

Nginx 日誌和變數
程序開發人員愛開發

TAG:程序員小新人學習 |