最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot使用Aspect切面攔截打印請(qǐng)求參數(shù)的示例代碼

 更新時(shí)間:2021年07月14日 15:45:04   作者:yvioo  
這篇文章主要介紹了SpringBoot使用Aspect切面攔截打印請(qǐng)求參數(shù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

AspectJ作為語(yǔ)言級(jí)別的AOP框架,功能相比于SpringAOP更加強(qiáng)大。SpringAOP旨在提供給用戶一個(gè)輕量級(jí)的AOP實(shí)現(xiàn)方案,它只能應(yīng)用在SpringIOC容器中管理的bean。而AspectJ旨在提供給用戶一個(gè)完整的AOP解決方案,它可以應(yīng)用在所有的域?qū)ο笾校旅娼o大家介紹SpringBoot使用Aspect切面攔截打印請(qǐng)求參數(shù)的代碼。

引入依賴

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>

也用到了fastjson打印參數(shù) , 如果引了就不需要(也可以根據(jù)自己的來打印)

<!-- 添加fastjson 支持 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.15</version>
        </dependency>

LogAspect.java

import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.Signature;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.Method;

/**
 * @author zhipeih
 * @date 2021/07/14
 */
@Slf4j
@Component
@Aspect  //表示它是一個(gè)切面
public class LogAspect {

    /**
     *
     *  execution:改成自己要打印的控制器路徑
     * @param proceedingJoinPoint
     * @return
     * @throws Throwable
     */
    @Around("execution(* com.example.*.controller.*.*(..)) ")
    public Object handleControllerMethod(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {

        //原始的HTTP請(qǐng)求和響應(yīng)的信息
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = attributes.getRequest();

        Signature signature = proceedingJoinPoint.getSignature();
        MethodSignature methodSignature = (MethodSignature)signature;
        //獲取當(dāng)前執(zhí)行的方法
        Method targetMethod = methodSignature.getMethod();

        //獲取參數(shù)
        Object[] objects = proceedingJoinPoint.getArgs();


        //獲取返回對(duì)象
        Object object = proceedingJoinPoint.proceed();

        StringBuilder sb = new StringBuilder(1000);
        sb.append("-------------------------------------------------------------\n");
        sb.append("Controller: ").append(targetMethod.getDeclaringClass().getName()).append("\n");
        sb.append("Method    : ").append(targetMethod.getName()).append("\n");
        sb.append("Params    : ").append(JSON.toJSONString(objects)).append("\n");
        sb.append("URI       : ").append(request.getRequestURI()).append("\n");
        sb.append("URL       : ").append(request.getRequestURL()).append("\n");
        sb.append("Return    : ").append(object).append("\n");
        sb.append("-------------------------------------------------------------\n");
        System.out.println(sb);

        return proceedingJoinPoint.proceed();
    }
}

到此這篇關(guān)于SpringBoot使用Aspect切面攔截打印請(qǐng)求參數(shù)的文章就介紹到這了,更多相關(guān)SpringBoot打印請(qǐng)求參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java輸入處理的常見錯(cuò)誤小結(jié)

    Java輸入處理的常見錯(cuò)誤小結(jié)

    在?Java?編程中,輸入處理是一個(gè)基礎(chǔ)但又復(fù)雜的任務(wù),尤其是在涉及到與用戶交互時(shí),本文將對(duì)?Java?輸入處理的基本機(jī)制進(jìn)行詳細(xì)解析,需要的可以了解下
    2024-11-11
  • spring data jpa 查詢自定義字段,轉(zhuǎn)換為自定義實(shí)體方式

    spring data jpa 查詢自定義字段,轉(zhuǎn)換為自定義實(shí)體方式

    這篇文章主要介紹了spring data jpa 查詢自定義字段,轉(zhuǎn)換為自定義實(shí)體方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java中二叉樹的建立和各種遍歷實(shí)例代碼

    Java中二叉樹的建立和各種遍歷實(shí)例代碼

    這篇文章主要介紹了Java中二叉樹的建立和各種遍歷實(shí)例代碼,涉及樹節(jié)點(diǎn)的定義,后序遍歷,層序遍歷,深度優(yōu)先和廣度優(yōu)先等相關(guān)內(nèi)容,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • Java實(shí)現(xiàn)七牛云文件圖片上傳下載

    Java實(shí)現(xiàn)七牛云文件圖片上傳下載

    本文主要介紹了Java實(shí)現(xiàn)七牛云文件圖片上傳下載,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 詳解java各種集合的線程安全

    詳解java各種集合的線程安全

    這篇文章主要介紹了詳解java各種集合的線程安全,小編覺得挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。
    2017-10-10
  • SpringMVC框架post提交數(shù)據(jù)庫(kù)出現(xiàn)亂碼解決方案

    SpringMVC框架post提交數(shù)據(jù)庫(kù)出現(xiàn)亂碼解決方案

    這篇文章主要介紹了SpringMVC框架post提交數(shù)據(jù)庫(kù)出現(xiàn)亂碼解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Java實(shí)現(xiàn)FTP文件與文件夾的上傳和下載

    Java實(shí)現(xiàn)FTP文件與文件夾的上傳和下載

    本文主要分享了Java實(shí)現(xiàn)文件上傳和下載的具體實(shí)例,分為單個(gè)文件的上傳與下載和整個(gè)文件夾的上傳與下載。具有很好的參考價(jià)值,需要的朋友一起來看下吧
    2016-12-12
  • java錯(cuò)誤:?不支持發(fā)行版本?22的簡(jiǎn)單解決方法

    java錯(cuò)誤:?不支持發(fā)行版本?22的簡(jiǎn)單解決方法

    這篇文章主要給大家介紹了關(guān)于java錯(cuò)誤:?不支持發(fā)行版本?22的簡(jiǎn)單解決方法,這個(gè)錯(cuò)誤通常是由于Java版本不兼容導(dǎo)致的,請(qǐng)檢查您的項(xiàng)目所使用的Java版本是否與您當(dāng)前安裝的Java版本一致,需要的朋友可以參考下
    2024-06-06
  • SpringBoot環(huán)境配置知識(shí)總結(jié)

    SpringBoot環(huán)境配置知識(shí)總結(jié)

    今天帶大家了解SpringBoot環(huán)境配置的相關(guān)知識(shí),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • Java調(diào)用SQL腳本執(zhí)行常用的方法示例

    Java調(diào)用SQL腳本執(zhí)行常用的方法示例

    這篇文章主要給大家介紹了關(guān)于Java調(diào)用SQL腳本執(zhí)行常用的方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04

最新評(píng)論

梁山县| 卓资县| 拜城县| 山阳县| 甘洛县| 枣强县| 小金县| 肃北| 阜南县| 中江县| 清原| 辽源市| 宝丰县| 攀枝花市| 新疆| 满城县| 城步| 金塔县| 加查县| 凤山市| 丰县| 广宁县| 济南市| 马山县| 沾化县| 嫩江县| 墨玉县| 云浮市| 泰宁县| 教育| 易门县| 长岛县| 清苑县| 嘉禾县| 马鞍山市| 通榆县| 甘孜县| 安义县| 九寨沟县| 乐亭县| 阜宁县|