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

springboot日志切面通用類實例詳解

 更新時間:2021年01月08日 08:31:42   作者:jiachengren  
這篇文章主要介紹了springboot日志切面通用類,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

1.pom.xml文件導(dǎo)入AOP依賴

<!--aop依賴-->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-aop</artifactId>
  <version>2.3.0.RELEASE</version>
</dependency>

2.pom.xml導(dǎo)入Lombok依賴

<!--Lombok依賴-->
<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <optional>true</optional>
</dependency>
package jmu.rjc.aspect;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;

//日志切面
@Aspect
@Component
public class LogAspect {

  private final Logger logger = LoggerFactory.getLogger(this.getClass());
	
	//包名配置為自己的項目包名即可
  @Pointcut("execution(* jmu.rjc.web.*.*(..))")
  public void log(){}

  @Before("log()")
  public void doBefore(JoinPoint joinPoint){
    ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
    HttpServletRequest request = attributes.getRequest();
    String url = request.getRequestURL().toString();
    String ip = request.getRemoteAddr();
    String classMethod = joinPoint.getSignature().getDeclaringTypeName()+"."+joinPoint.getSignature().getName();
    Object[] args = joinPoint.getArgs();
    RequestLog requestLog = new RequestLog(url,ip,classMethod,args);
    logger.info("Request : {}",requestLog);
  }

  @After("log()")
  public void doAfter(){
    logger.info("---------doAfter-------");
  }

  @AfterReturning(returning = "result",pointcut = "log()")
  public void doAfterReturn(Object result){
    logger.info("Result : {}"+result);
  }

  @Data
  @ToString
  @AllArgsConstructor
  @NoArgsConstructor
  private class RequestLog{
    private String url;
    private String ip;
    private String classMethod;
    private Object[] args;
  }

}

3.關(guān)于Lombok的注意點

Lombok的使用大大簡化了開發(fā)過程,提高了開發(fā)效率,但是也存在一些隱患.比如強行侵入jar包,JDK版本升級沖突,破壞部分封裝性等缺陷,使用前最好和團隊商量好

到此這篇關(guān)于springboot日志切面通用類的文章就介紹到這了,更多相關(guān)springboot日志切面通用類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • spring啟動錯誤Singleton bean creation not allowed while the singletons of this factory are indestruction

    spring啟動錯誤Singleton bean creation not al

    本文主要介紹了spring啟動錯誤Singleton bean creation not allowed while the singletons of this factory are indestruction,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • springAOP的三種實現(xiàn)方式示例代碼

    springAOP的三種實現(xiàn)方式示例代碼

    這篇文章主要介紹了springAOP的三種實現(xiàn)方式,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Eclipse 出現(xiàn)Failed to load JavaHL Library解決方法

    Eclipse 出現(xiàn)Failed to load JavaHL Library解決方法

    這篇文章主要介紹了Eclipse 出現(xiàn)Failed to load JavaHL Library解決方法的相關(guān)資料,今天使用Eclipse 時出現(xiàn)以上錯誤,本文說明如何更更正,需要的朋友可以參考下
    2016-11-11
  • Java基礎(chǔ)之文件和目錄操作

    Java基礎(chǔ)之文件和目錄操作

    這篇文章主要介紹了Java基礎(chǔ)之文件和目錄操作,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • Java打包ZIP文件的使用

    Java打包ZIP文件的使用

    本文詳細(xì)介紹了如何使用Java語言進行ZIP文件的創(chuàng)建、讀取和操作,通過java.util.zip包和第三方庫,可以高效地處理ZIP文件,并應(yīng)用密碼保護和注釋等高級功能,在實際應(yīng)用中,遵循最佳實踐可以提高程序的健壯性和安全性
    2025-02-02
  • java中Socket設(shè)置超時時間的兩種方式

    java中Socket設(shè)置超時時間的兩種方式

    這篇文章主要介紹了java中Socket設(shè)置超時時間的兩種方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • SpringBoot+Thymeleaf靜態(tài)資源的映射規(guī)則說明

    SpringBoot+Thymeleaf靜態(tài)資源的映射規(guī)則說明

    這篇文章主要介紹了SpringBoot+Thymeleaf靜態(tài)資源的映射規(guī)則說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 淺談Java轉(zhuǎn)義符\\|

    淺談Java轉(zhuǎn)義符\\|

    java中\(zhòng)需要用\\來表示吧這個你應(yīng)該知道,而split中傳入的參數(shù)是什么呢 他并不是普通的字符串 你可以查一下api文檔 它要求傳入的是正則表達式 而正則表達式也需要這個\所以在這里有這個\\
    2015-06-06
  • Mybatis-plus中的@EnumValue注解使用詳解

    Mybatis-plus中的@EnumValue注解使用詳解

    這篇文章主要介紹了Mybatis-plus中的@EnumValue注解使用詳解,在PO類中,如果我們直接使用枚舉類型去映射數(shù)據(jù)庫的對應(yīng)字段保存時,往往就會因為類型不匹配導(dǎo)致映射失敗,Mybatis-plus提供了一種解決辦法,就是使用@EnumValue注解,需要的朋友可以參考下
    2024-02-02
  • 詳解Java中的時間處理與時間標(biāo)準(zhǔn)

    詳解Java中的時間處理與時間標(biāo)準(zhǔn)

    這篇文章主要為大家詳細(xì)介紹了三個時間標(biāo)準(zhǔn)GMT,CST,UTC的規(guī)定,以及Java進行時間處理的相關(guān)知識,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-09-09

最新評論

伊吾县| 垫江县| 阳城县| 孙吴县| 上杭县| 秦安县| 黑水县| 营口市| 肇州县| 渑池县| 从江县| 于田县| 延津县| 西乌珠穆沁旗| 桓仁| 大埔区| 富平县| 阿坝| 阿拉善左旗| 商都县| 淅川县| 郎溪县| 赤壁市| 珲春市| 忻州市| 西乡县| 南乐县| 家居| 璧山县| 乐亭县| 延安市| 木兰县| 贞丰县| 枣庄市| 伊吾县| 霍山县| 武胜县| 库伦旗| 蓬莱市| 新郑市| 兴业县|