欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

spring boot aop 記錄方法執(zhí)行時間代碼示例

 更新時間:2018年02月01日 13:40:46   作者:joshua1830  
這篇文章主要介紹了spring boot aop 記錄方法執(zhí)行時間代碼示例,分享了相關(guān)代碼,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下

本文研究的主要是spring boot aop 記錄方法執(zhí)行時間的實(shí)現(xiàn)代碼,具體如下。

為了性能調(diào)優(yōu),需要先統(tǒng)計(jì)出來每個方法的執(zhí)行時間,直接在方法前后log輸出太麻煩,可以用AOP來加入時間統(tǒng)計(jì)

添加依賴

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

在application.properties中加入配置

spring.aop.auto=true

spring.aop.auto屬性默認(rèn)是開啟的,也就是說只要引入了AOP依賴后,默認(rèn)已經(jīng)增加了@EnableAspectJAutoProxy。 切記千萬不要加入多余的信息,如@EnableAspectJAutoProxy!

實(shí)現(xiàn)具體代碼

@Component
@Aspect
public class LogAspect {
	private static final Log LOG = LogFactory.getLog(LogAspect.class);
	/**
   * 定義一個切入點(diǎn).
   * 解釋下:
   *
   * ~ 第一個 * 代表任意修飾符及任意返回值.
   * ~ 第二個 * 定義在web包或者子包
   * ~ 第三個 * 任意方法
   * ~ .. 匹配任意數(shù)量的參數(shù).
   */
	@Pointcut("execution(* com.wedo.stream.service..*.*(..))")
	   public void logPointcut(){
	}
	@org.aspectj.lang.annotation.Around("logPointcut()")
	   public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable{
		//  	 LOG.debug("logPointcut " + joinPoint + "\t");
		long start = System.currentTimeMillis();
		try {
			Object result = joinPoint.proceed();
			long end = System.currentTimeMillis();
			LOG.error("+++++around " + joinPoint + "\tUse time :
 " + (end - start) + " ms!");
			return result;
		}
		catch (Throwable e) {
			long end = System.currentTimeMillis();
			LOG.error("+++++around " + joinPoint + "\tUse time : 
" + (end - start) + " ms with exception : " + e.getMessage());
			throw e;
		}
	}
}

注意問題

aop后方法不能正確返回值

這個代理方法一定要返回值,否則,在代碼中就沒有返回值了。

//這樣是不對的
 public void doAround(ProceedingJoinPoint joinPoint){}

Spring的文檔中這么寫的:Spring AOP部分使用JDK動態(tài)代理或者CGLIB來為目標(biāo)對象創(chuàng)建代理。如果被代理的目標(biāo)實(shí)現(xiàn)了至少一個接口,則會使用JDK動態(tài)代理。所有該目標(biāo)類型實(shí)現(xiàn)的接口都將被代理。若該目標(biāo)對象沒有實(shí)現(xiàn)任何接口,則創(chuàng)建一個CGLIB代理。

默認(rèn)是JDK動態(tài)代理,更改為cglib

總結(jié)

以上就是本文關(guān)于spring boot aop 記錄方法執(zhí)行時間代碼示例的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關(guān)文章

  • java中Class.forName方法的作用詳解

    java中Class.forName方法的作用詳解

    Class.forName(xxx.xx.xx) 返回的是一個類,但Class.forName方法的作用到底是什么終?下面這篇文章就來給大家詳細(xì)介紹了關(guān)于java中Class.forName方法的作用,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-06-06
  • 淺談從Java中的棧和堆,進(jìn)而衍生到值傳遞

    淺談從Java中的棧和堆,進(jìn)而衍生到值傳遞

    這篇文章主要介紹了淺談從Java中的棧和堆,進(jìn)而衍生到值傳遞,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 基于Mybatis映射的一點(diǎn)心得(分享)

    基于Mybatis映射的一點(diǎn)心得(分享)

    下面小編就為大家?guī)硪黄贛ybatis映射的一點(diǎn)心得(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • 如何用JAVA判斷當(dāng)前時間是否為節(jié)假日、周末、工作日及調(diào)休日(不報錯:IOException!)

    如何用JAVA判斷當(dāng)前時間是否為節(jié)假日、周末、工作日及調(diào)休日(不報錯:IOException!)

    最近公司有個業(yè)務(wù)需要判斷工作日,但是每年的節(jié)假日不一樣,下面這篇文章主要給大家介紹了關(guān)于如何用JAVA判斷當(dāng)前時間是否為節(jié)假日、周末、工作日及調(diào)休日的相關(guān)資料,且不報錯:IOException!,需要的朋友可以參考下
    2023-12-12
  • Java函數(shù)習(xí)慣用法詳解

    Java函數(shù)習(xí)慣用法詳解

    本篇文章主要給大家總結(jié)了java中最常用的函數(shù)的用法和寫法,需要的朋友參考一下吧。
    2017-12-12
  • 教你如何正確了解java三大特性!!!!

    教你如何正確了解java三大特性!!!!

    所有的面向?qū)ο缶幊陶Z言的思路都是差不多的,而這三大特性,則是思路中的支柱點(diǎn),接下來我就重點(diǎn)講解了一下java三大特性,感興趣的朋友跟隨腳本之家小編一起看看吧
    2021-07-07
  • SpringBoot配置系統(tǒng)全局異常映射處理

    SpringBoot配置系統(tǒng)全局異常映射處理

    在項(xiàng)目開發(fā)中,肯定少不了異常的出現(xiàn),作為后臺開發(fā)人員,我們總是在不停的寫各種接口提供給前端調(diào)用,然而不可避免的,當(dāng)后臺出現(xiàn)BUG時,前端總是丑陋的講錯誤信息直接暴露給用戶,這樣的用戶體驗(yàn)想必是相當(dāng)差的,本文主要講解異常映射的配置
    2021-06-06
  • SpringBoot日程管理Quartz與定時任務(wù)Task實(shí)現(xiàn)詳解

    SpringBoot日程管理Quartz與定時任務(wù)Task實(shí)現(xiàn)詳解

    定時任務(wù)是企業(yè)級開發(fā)中必不可少的組成部分,諸如長周期業(yè)務(wù)數(shù)據(jù)的計(jì)算,例如年度報表,諸如系統(tǒng)臟數(shù)據(jù)的處理,再比如系統(tǒng)性能監(jiān)控報告,還有搶購類活動的商品上架,這些都離不開定時任務(wù)。本節(jié)將介紹兩種不同的定時任務(wù)技術(shù)
    2022-09-09
  • springBoot接入阿里云oss的實(shí)現(xiàn)步驟

    springBoot接入阿里云oss的實(shí)現(xiàn)步驟

    這篇文章主要介紹了springBoot接入阿里云oss的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Java this super代碼實(shí)例及使用方法總結(jié)

    Java this super代碼實(shí)例及使用方法總結(jié)

    這篇文章主要介紹了Java this super代碼實(shí)例及使用方法總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03

最新評論