使用aop來監控方法進行增強處理
- aop是面向切面程式設計,在不改變其方法的內部邏輯來增強一個方法的執行
aop的幾種通知: 前置通知、後置通知、異常通知、環繞通知
使用aop的方法:自定義一個註解類來標記方法,或者是直接監控方法
下面使用了前置通知和後置通知
自定義註解
/**
* 自定義操作日誌記錄註解
*
* @author Ghl
*
*/
@Target({ ElementType.PARAMETER, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Log {
/**
* 模組
*/
public String title() default "";
/**
* 型別操作:比如 0:是對學生的操作 1:是課程和批次操作 ...
*
*/
public String flag() default "";
/**
* 操作的型別 比如 1:增加 2:修改 3:刪除
*
*/
public int openType() default 0;
}
標記方法
@Log(title="自考訂單關閉操作",openType = 2,flag = "12")
public int closeOrder(String id) {
return gxOrderMapper.closeOrder(id);
}
監控標記方法
/**
* @param joinPoint 切點 可以獲取到資料引數
*/
@AfterReturning(pointcut = "logPointCut()")
public void doAfterReturning(JoinPoint joinPoint) {
//處理日誌操作的邏輯處理
handleLog(joinPoint);
}
JoinPoint 代理了被監控方法中的引數,解析代理物件
public void getInFo(final JoinPoint joinPoint){
//獲取Log中的標記
Log annotationLog = getAnnotationLog(joinPoint);
//獲取方法引數
Object[] args = joinPoint.getArgs();}
/**
* 是否存在註解,如果存在就獲取
*/
private Log getAnnotationLog(JoinPoint joinPoint) throws Exception {
Signature signature = joinPoint.getSignature();
MethodSignature methodSignature = (MethodSignature) signature;
Method method = methodSignature.getMethod();
if (method != null) {
return method.getAnnotation(Log.class);
}
return null;
}
前置通知(單獨監控某個方法,刪除操作使用的前置通知)
//單獨監控刪除批次日誌的資訊
@Pointcut("execution(* com.gx.manager.biz.impl.GxPeriodBizImpl.deteleGxPeriod(..))")
public void delGxPeriod(){}
@Before("delGxPeriod()")
public void delGxPeriodLog(JoinPoint joinPoint){
}
相關文章
- 一種對雲主機進行效能監控的監控系統及其監控方法
- 【Zabbix】如何使用Zabbix進行IPMI監控?
- 影象處理之影象增強
- 想在 KubeSphere 中進行自定義監控?來瞧瞧這
- transforms模組—PyTorch影像處理與資料增強方法ORMPyTorch
- Zabbix監控使用進階
- 使用Powershell對目標進行螢幕監控
- .NET使用MailKit進行郵件處理AI
- 如何進行監控設計?
- Spring AOP 增強介紹Spring
- 如何進行網站的真實使用者監控(RUM)?怎麼進入監控網站網站
- JAVA不使用執行緒池來處理的非同步的方法Java執行緒非同步
- centos7使用ntopng進行流量監控和分析CentOS
- 使用 iotop 監控哪些程式在進行I/O操作
- RLHF · PBRL | SURF:使用半監督學習,對 labeled segment pair 進行資料增強AI
- SpringBoot整合Actuator進行健康監控Spring Boot
- 如何使用表格儲存控制檯進行資料監控
- 在Linux中,如何進行使用者行為監控?Linux
- 使用 Sentry 對應用進行監控,少 bug 少加班
- 如何使用SMOD和CMOD進行SD的使用者增強
- 使用matlab對影像進行二值化處理Matlab
- 使用python進行簡單的媒體處理Python
- 使用Prometheus和Grafana進行系統監控和預測 - flightawarePrometheusGrafana
- 視覺化學習:如何使用後期處理通道增強影像效果視覺化
- 使用Spring Boot + Redis 進行實時流處理 - vinsguruSpring BootRedis
- DCIM 系統增強資料中心的電源監控能力
- 使用Flink SQL進行實時效能監控:AdTech廣告用例SQL
- springboot中加入druid對sql進行監控Spring BootUISQL
- 在Linux中,如何進行磁碟效能監控?Linux
- 進行Linux效能監控的命令介紹Linux
- Node效能如何進行監控以及優化?優化
- 智慧環保-汙水處理遠端監控解決方案
- 深度學習煉丹-資料處理和增強深度學習
- 使用 Python+spaCy 進行簡易自然語言處理Python自然語言處理
- 如何使用卷積神經網路進行影像處理?卷積神經網路
- 使用 scipy.fft 進行Fourier Transform:Python 訊號處理FFTORMPython
- adsl伺服器,adsl伺服器該怎樣進行群控處理?伺服器
- 如何進行音訊修處理音訊