Spring之切面程式設計
/**
* 檢測方法執行耗時的spring切面類
* 使用@Aspect註解的類,Spring將會把它當作一個特殊的Bean(一個切面),也就是不對這個類本身進行動態代理
* * @author zz
* @date 2019/05/15
* */
@Aspect
@Component
public class MethodExecutionTimeInterceptor {
private static final Logger logger = LoggerFactory.getLogger(MethodExecutionTimeInterceptor.class);
/**
* 統計方法執行耗時Around環繞通知
* @param joinPoint
* @return
*/
@Around("execution(* com.oppein.miop.*.*.tunnel..*.*(..)) && @annotation(methodDesc)")
public Object timeAround(ProceedingJoinPoint joinPoint, MethodDescAnnotation methodDesc) {
Object obj = null;
Object[] args = joinPoint.getArgs();
long startTime = System.currentTimeMillis();
try {
obj = joinPoint.proceed(args);
} catch (Throwable e) {
logger.error("[{}]統計某方法執行耗時環繞通知出錯: {}", m`在這裡插入程式碼片`ethodDesc, e.getMessage());
}
long endTime = System.currentTimeMillis();
// 獲取執行的方法名
// MethodSignature signature = (MethodSignature) joinPoint.getSignature();
// String methodName = signature.getDeclaringTypeName() + "." + signature.getName();
logger.warn("MethodExecutionTimeInterceptor ==> {}執行耗時:{} ms", methodDesc.value(), (endTime - startTime));
return obj;
}
}
@Target({ElementType.PARAMETER, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface MethodDescAnnotation {
/**
* 方法描述
* @return
*/
String value() default "無描述資訊";
}
相關文章
- Spring之AOP面向切面程式設計Spring程式設計
- Spring AOP——Spring 中面向切面程式設計Spring程式設計
- 四、Spring-面向切面程式設計Spring程式設計
- Spring AOP(面向切面程式設計)是什麼?Spring程式設計
- 面向切面程式設計 ( Aspect Oriented Programming with Spring )程式設計Spring
- Spring理論基礎-面向切面程式設計Spring程式設計
- spring aop 切面程式設計控制管理事務Spring程式設計
- 程式設計思想 面向切面程式設計程式設計
- 面向切面程式設計之瘋狂的 Aspects程式設計
- 手寫Spring---AOP面向切面程式設計(4)Spring程式設計
- 手寫Spring---AOP面向切面程式設計(3)Spring程式設計
- Spring 面向切面程式設計AOP 詳細講解Spring程式設計
- AOP 面向切面程式設計程式設計
- AOP(面向切面程式設計)程式設計
- 面向切面程式設計AOP程式設計
- Day67 Spring AOP(面向切面程式設計) 和代理設計模式Spring程式設計設計模式
- Spring Boot實戰系列(3)AOP面向切面程式設計Spring Boot程式設計
- Spring之旅第七站:面向切面程式設計(AOP)Spring程式設計
- Java 面向切面程式設計AOPJava程式設計
- AOP--面向切面程式設計程式設計
- 設計模式之面向切面程式設計AOP設計模式程式設計
- Android AOP面向切面設計程式設計Android程式設計
- Spring框架系列(4) - 深入淺出Spring核心之面向切面程式設計(AOP)Spring框架程式設計
- iOS開發 面向切面程式設計之 Aspects 原始碼解析iOS程式設計原始碼
- 前端js面向切面程式設計(AOP)前端JS程式設計
- React Native面向切面程式設計React Native程式設計
- Android面向切面程式設計(AOP)Android程式設計
- Spring系列:基於Spring-AOP和Spring-Aspects實現AOP切面程式設計Spring程式設計
- Spring IoC、面向切面程式設計、事務管理等Spring基本概念詳解Spring程式設計
- 【spring原始碼學習】spring的AOP面向切面程式設計的實現解析Spring原始碼程式設計
- Spring AOP:面向切面程式設計的核心概念與實際應用Spring程式設計
- aop面向切面程式設計的實現程式設計
- Java中的面向切面程式設計(AOP)Java程式設計
- 前端解讀面向切面程式設計(AOP)前端程式設計
- 面向切面程式設計和依賴注入程式設計依賴注入
- 在Javascript中進行面向切面程式設計JavaScript程式設計
- JAVA_動態代理AOP切面程式設計Java程式設計
- 01.AOP(AspectOrientatedProgramming面向切面程式設計)程式設計