Spring AOP 統計函式方法執行時間例項

2021-09-14 00:59:50 字數 1325 閱讀 9026

package com.packtpub.aop;

import org.apache.commons.logging.log;

import org.apache.commons.logging.logfactory;

import org.aspectj.lang.proceedingjoinpoint;

import org.aspectj.lang.annotation.around;

import org.aspectj.lang.annotation.aspect;

import org.aspectj.lang.reflect.methodsignature;

import org.springframework.stereotype.component;

/** * 檢測方法執行耗時的spring切面類

* 使用@aspect註解的類,spring將會把它當作乙個特殊的bean(乙個切面),也就是不對這個類本身進行動態**

* * @date 2019-03-29

*/@aspect

@component

public class methodexecutetimeviewer catch (throwable e)

// 獲取執行的方法名

long endtime = system.currenttimemillis();

methodsignature signature = (methodsignature) joinpoint.getsignature();

string methodname = signature.getdeclaringtypename() + "." + signature.getname();

// 列印耗時的資訊

this.printexectime(methodname, starttime, endtime);

return obj;

}/**

* 列印方法執行耗時的資訊,如果超過了一定的時間,才列印

** @param methodname

* @param starttime

* @param endtime

*/private void printexectime(string methodname, long starttime, long endtime)

}}

執行

或開啟網頁 http://http?/localhost:8080/user/100

呼叫相關的方法,輸出了相應的執行時間.

使用Spring AOP來統計方法的執行時間

最簡單 粗暴的方法是給各個需要統計的方法開始和結尾處加的時間戳,然後差值計算結果即可,如下 html view plain copy long starttime system currenttimemillis 業務 long endtime system currenttimemillis 這樣...

spring aop 切點函式基礎

詳細參考 表示匹配使用 annotation指定註解標註的方法將會被環繞 before value annotation com.ghq.cloud.anno.needtest 語法 execution 修飾符模式 返回值模式 方法名模式 引數模式 異常模式 例1 execution public ...

Spring AOP簡單使用方法

顧名思義 aop aspect oriented programming 字面意思是面向切面程式設計,aop所帶來的好處是能提取具有共同功能的 塊,比如使用者取款流程需要用到1.使用者密碼的驗證 2.使用者查詢餘額需要用到密碼的驗證 那麼兩者之間的共同密碼驗證功能的邏輯實現則可以提取出來,提取出來的...