Spring AOP 記錄系統日誌研究方案

2021-09-30 19:03:18 字數 2893 閱讀 4969

一、主要應用要求

記錄lis配置模組的歷史記錄,要求能夠準確的記錄配置修改前修改後的歷史資料,及操作行為。

spring 的aop功能

優點:比較方便,通過自定義註解的方法,把想要記錄的內容放在註解中,通過切入點來獲取註解引數,就能獲取自己想要的資料,記錄資料庫中。(可以記錄,操作人的資訊,操作介面的方法,入參,出參等等)

缺點:不太好實現多表操作

3.1.資料庫設計

主日誌表sys_systemlog:日誌表

no.

欄位名

含義

型別

備註說明

表名:sys_systemlog 日誌表1

logid

主鍵logid

string 2

tablename 操作

標明 string 3

optype

操作型別

string 4

userid

操作人id

string 5

subsyscode

子系統**

string 6

hospitalcode

機構**

string 7

hospitalname

機構名稱

string 8

logcode

登入賬號 001

string 9

usercode 工號

string 10

username

姓名 string 11

deptcode

部門**

string 12

deptname

部門名稱

string 13

ip操作電腦的ip

string 14

url操作的介面位址

請求型別

string

post/get 16

actionmethod

介面方法

string 17

params

介面入引數

string 18

actiondate

開始時間

string 19

returndate

操作介面結束時間

string 20

type

string 21

returndata

返回的出參

string 22

modules模組

string 23

description描述

string 24

exceptioncode

異常code

string 25

exceptiondetail

異常資訊

string

子日誌表sys_systemlog_detail:操作日誌詳情表

no.

欄位名

含義

型別

備註說明

表名:sys_systemlog_detail 操作日誌詳情表1

id 主鍵id

string 2

logid

操作日誌id

string

sys_systemlog的主鍵3

fieldname

欄位名稱

string 4

fielddetail

字段描述

string 5

oldvalue

當前欄位舊值

string 6

newvalue

當前欄位新值

string

注:主表和子表的關係是一對多的關係;通過

logid

字段連線。

4.1通過自定義註解,註解到需要aop切入的方法上

定義註解:operationlog,並且定義六個屬性

string id();//資料表主鍵id

string table();//資料表

string cloum() default {};//需要記錄的字段

operationtype type();//操作型別:add 新增,update修改,delete刪除

string descrption() default "" ;//描述

string modules() default "";//操作模組

4.2定義切面類,獲取切面引數,儲存資料庫具體**如下:

4.3 日誌切入【新增註解標誌即可】

刪除:

新增:

修改:

4.4 資料庫記錄資料的效果:

本次在外地出差,無法連線資料庫,回頭補上資料庫的截圖。有問題的可以聯絡我:qq875491089

Spring AOP 記錄日誌

spring aop 最常用的地方之一就是記錄日誌,這裡記錄除了記錄日誌描述外,還記錄了方法請求的引數,並將記錄儲存到資料庫。這裡用到了自定義註解,使用如下 public class operationlog implements serializable aop 日誌記錄,自定義註解 author...

使用Spring AOP記錄訪問日誌

api class clazz joinpoint.gettarget getclass 獲取目標類物件 string methodname joinpoint.getsignature getname 獲取切入點的方法名 string values anno.value 獲取註解的value屬性值...

SpringAop切面實現日誌記錄

springaop切面實現日誌記錄 實現 原因 spring在處理中,可能是因為我的專案有事務,serviceimpl的方法被 後直接得不到了。換乙個思路 先得到自己的父類,然後通過父類得到真實的自己 解決方法 1 2 這個方法幫忙拿出註解中的operation屬性 3 因為有攔截serviceim...