91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

spring boot aop如何記錄方法執行時間

發布時間:2021-08-18 11:01:24 來源:億速云 閱讀:306 作者:小新 欄目:編程語言

小編給大家分享一下spring boot aop如何記錄方法執行時間,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

為了性能調優,需要先統計出來每個方法的執行時間,直接在方法前后log輸出太麻煩,可以用AOP來加入時間統計

添加依賴

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

在application.properties中加入配置

spring.aop.auto=true

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

實現具體代碼

@Component
@Aspect
public class LogAspect {
	private static final Log LOG = LogFactory.getLog(LogAspect.class);
	/**
   * 定義一個切入點.
   * 解釋下:
   *
   * ~ 第一個 * 代表任意修飾符及任意返回值.
   * ~ 第二個 * 定義在web包或者子包
   * ~ 第三個 * 任意方法
   * ~ .. 匹配任意數量的參數.
   */
	@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動態代理或者CGLIB來為目標對象創建代理。如果被代理的目標實現了至少一個接口,則會使用JDK動態代理。所有該目標類型實現的接口都將被代理。若該目標對象沒有實現任何接口,則創建一個CGLIB代理。

默認是JDK動態代理,更改為cglib

以上是“spring boot aop如何記錄方法執行時間”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平阴县| 佛坪县| 谷城县| 佛冈县| 扶绥县| 抚松县| 正阳县| 五家渠市| 贵定县| 建瓯市| 大田县| 丹东市| 衢州市| 苗栗县| 乌兰县| 景泰县| 宜城市| 米脂县| 烟台市| 师宗县| 淮北市| 永兴县| 镇坪县| 石林| 和林格尔县| 徐州市| 察雅县| 台东县| 鄱阳县| 汝城县| 宁明县| 项城市| 台山市| 万年县| 安丘市| 郸城县| 上饶县| 察哈| 泰和县| 海安县| 大理市|