aop實踐-自定義註解實現日誌記錄
專案環境springboot
spring aop預設是使用aspectj的註解
1.引入jar包
org.springframework.boot
spring-boot-starter-aop
2.自定義註解
@target()
@retention(retentionpolicy.runtime)
@documented
public @inte***ce methodlog
3.日誌記錄
此處每次操作完成之後記錄日誌
@component
@aspect
public class logservice
@afterthrowing("methodcachepointcut()")
public void test(joinpoint point)
/*** 切面
* * @param point
* @return
* @throws throwable
*/@afterreturning("methodcachepointcut()")
public void recordoperatelog(joinpoint point) throws throwable
object methodparam = null;
methodparam = point.getargs(); // 獲取方法引數
mapparmap = objecttomap(methodparam[0]);
// 記錄日誌
//...
operatelog.setremark(string.valueof(methodmap.get("remark")));
operatelog.settypeid((integer)methodmap.get("opertype"));
//... }
/*** 獲取利用反射獲取類裡面的值和名稱
* * @param obj
* @return
* @throws illegalacces***ception
*/public static mapobjecttomap(object obj) throws illegalacces***ception
for (field field : clazz.getdeclaredfields())
return map; }
/*** 獲取方法中的中文備註
* * @param joinpoint
* @return
* @throws exception
*/public static mapgetmthodmap(joinpoint joinpoint) throws exception
break;}}
} return methodmap;
}}
4.使用
aop必須基於介面實現,所以在介面實現類的方法上加入如下註解即可
JavaLib 使用AOP幫你記錄日誌
這一次,我們乾脆點,直接進入正題。使用這個模組,你必要加入的包依賴 你需要告訴我,你的切入點 繼承lbaseweblogaspect,並實現pointcut 方法,配置你的切入點 寫乙個介面進行測試,我們還是使用上一次的切口吧 完整 我們放大點,看得仔細 日誌主要記錄以下資訊 請求客戶端ip 請求u...
關於用aop方式記錄日誌
最近需要開始剝離日誌邏輯,故想到了aop方式插入日誌。配置檔案 補充一點 如果在pointcut中存在多個表示式,可以用 來進行分隔,如 實際執行日誌插入的類 import org.aopalliance.intercept.methodinterceptor import org.aopallia...
Spring實踐之AOP一異常處理和日誌處理
使用spring的專案中,利用好spring核心之一 aop能夠幫助我們解耦 而且還能完成很多其他工作,這裡要說的就是異常處理和日誌列印。在我們的正常流程程式中,需要有日誌處理和異常處理,但是每個方法不可能都寫一套處理的 所以我們可以借助aop來實現處理的功能!但是有乙個缺點就是通過aop處理日誌時...