使用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監控?
- 使用Ganglia對hadoop進行監控Hadoop
- 影象處理之影象增強
- springboot中使用actuator進行監控Spring Boot
- transforms模組—PyTorch影像處理與資料增強方法ORMPyTorch
- 想在 KubeSphere 中進行自定義監控?來瞧瞧這
- 使用 canvas 對影象進行處理Canvas
- 使用 getopt() 進行命令列處理命令列
- Zabbix監控使用進階
- Spring AOP 增強介紹Spring
- .NET使用MailKit進行郵件處理AI
- 使用 iotop 監控哪些程式在進行I/O操作
- centos7使用ntopng進行流量監控和分析CentOS
- 在fedora中使用MRTG進行系統監控(zt)
- 使用AUDIT_SYSLOG_LEVEL進行Sys使用者行為監控
- RLHF · PBRL | SURF:使用半監督學習,對 labeled segment pair 進行資料增強AI
- JAVA不使用執行緒池來處理的非同步的方法Java執行緒非同步
- 對table的操作進行監控
- 批量監控主機方法2-使用rhost來實現
- 批量監控主機方法3-使用ftp來實現FTP
- 使用v$session_longops來監控rman備份進度SessionGo
- 如何使用表格儲存控制檯進行資料監控
- 使用Preprocessor前處理器語句對外部表進行介入處理
- 在VB中用Paintpicture方法進行圖形處理 (轉)AI
- 深度學習煉丹-資料處理和增強深度學習
- MATLAB數字影象處理(二)影象增強Matlab
- DCIM 系統增強資料中心的電源監控能力
- spring boot admin系統監控處理Spring Boot
- excel檔案怎麼使用php進行處理ExcelPHP
- 使用Spark和Cassandra進行資料處理(一)Spark
- 使用JavaScript進行基本圖形操作與處理JavaScript
- 使用 Sentry 對應用進行監控,少 bug 少加班
- 視覺化學習:如何使用後期處理通道增強影像效果視覺化
- 如何進行網站的真實使用者監控(RUM)?怎麼進入監控網站網站
- bulk_collect結合dbms_application_info監控資料處理進度APP
- Linux下使用pv監控進度Linux
- AOP - 自己寫 JDK 動態代理增強 beanJDKBean