[發明專利]一種記錄日志的方法有效
| 申請號: | 201110143035.7 | 申請日: | 2011-05-30 |
| 公開(公告)號: | CN102810057A | 公開(公告)日: | 2012-12-05 |
| 發明(設計)人: | 瞿爭;俞志剛 | 申請(專利權)人: | 中國銀聯股份有限公司 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44 |
| 代理公司: | 中國專利代理(香港)有限公司 72001 | 代理人: | 李湘;高為 |
| 地址: | 200135 上海*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 記錄 日志 方法 | ||
技術領域
本發明涉及一種記錄日志的方法,并且尤其涉及基于AOP技術的記錄日志的方法。
背景技術
傳統的程序通常表現出一些不能自然地適合單一的程序模塊或者是幾個緊密相關的程序模塊的行為。例如,面向對象編程關注將需求功能劃分為不同的并且相對獨立、封裝良好的類,并讓它們有著屬于自己的行為,依靠繼承和多態等來定義彼此的關系。因此,例如,當要對一個更新操作進行關于操作人員和數據庫變更的日志記錄時,需要在實現更新操作接口的實現類中添加實現日志記錄的過程。如此,如果要實現多個接口,就要在每個實現的類中都添加這些記錄過程。在系統開發的過程中,業務代碼中的這些非業務功能的代碼,例如日志記錄,常常會造成代碼結構混亂。而且,這將導致開發人員不斷重復的相同的工作,并且容易增加產生錯誤的代碼的可能性。
理想地,希望將通用的功能從不相關的類當中分離出來,由此使得多個類共享一種行為。從而,一旦這種行為發生變化,不必修改多個類而只需要修改這個行為即可。在AOP(Aspect?OrientedProgramming)中,這種行為被稱為橫切,其跨越了給定編程模型中的典型職責界限。常見的一些橫切行為有,例如,日志記錄、跟蹤、事務的處理、持久化等。
因此,需要一種記錄日志的方法,來定義交叉的關系,并將這些關系應用于跨模塊的、彼此不同的對象模型,從而使得代碼有更好的可讀性和易于維護,同時增加程序開發的透明性和類的擴展性,提高系統開發效率和開發系統的穩定性。
發明內容
本發明提供了一種在JEE程序開發中基于AOP(面向方面編程)技術的記錄操作日志和記錄數據庫審計日志的實現方法。操作日志主要描述特定人員所作的業務操作,數據庫審計日志主要描述所作的業務操作帶來的數據變化。通過該實現,在JEE應用開發過程中使開發人員更加關注于具體業務實現,而將操作日志和數據庫審計日志等非核心業務技術實現通過配置由底層實現來完成。
根據本發明的一個目的,提供了一種在JEE開發環境下記錄操作日志和數據庫審計日志的方法,其特征在于,包括以下步驟:
A、利用EJB中提供的面向方面編程的實現,記錄操作日志,其中,
在記錄操作日志時,利用Java反射機制讀取業務邏輯方法的JavaAnnotation獲得對于業務邏輯方法的描述,所述業務邏輯方法的描述至少限定標識操作的operationLogId屬性值,
然后,利用operationLogId屬性值構造OperationLog對象;
B、執行業務邏輯方法;
C、分別在作為實體對象的生命周期的PostPersit,PostUpdate和PostRemove過程后,記錄數據庫審計日志,其中,
記錄數據庫審計日志包括以下步驟:
a、利用Java反射機制讀取實體對象的屬性名稱,
b、利用Java反射機制根據屬性名稱獲取該屬性對應的值,
c、根據屬性當前值與屬性變更前的值,構造AuditLog對象。
優選地,OperationLog對象與AuditLog對象是一對多的關系,OperationLog對象包括標識操作的operationLogId屬性,AuditLog對象包括標識操作的operationId屬性,其中,所述方法使該operationLogId屬性與該operationId屬性關聯。
優選地,在基于B/S的JEE開發環境的情況下,所述方法在步驟B中進一步構造OperationLog對象,使其包括用戶信息屬性值,其中,
從保存用戶信息的session中獲取用戶信息屬性值,并將用戶信息屬性值綁定到當前的執行線程上;
在執行業務邏輯方法時,從該執行線程獲取用戶信息屬性值,并利用該用戶信息屬性值進一步構造OperationLog對象。
優選地,通過以下步驟使所述operationLogId屬性與所述operationId屬性關聯:
在步驟A中,將構造OperationLog對象產生的operationLogId屬性值綁定到當前的執行線程上,
在步驟C中,從該執行線程獲取operationLogId屬性值,以及將該operationLogId屬性值傳遞給AuditLog對象的operationId屬性值。
根據本發明的另一個目的,提供了一種在JEE開發環境下構建操作日志對象和數據庫審計日志對象的方法,其特征在于,所述操作日志對象和所述數據庫審計日志對象通過自定義的元數據配置關聯。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國銀聯股份有限公司,未經中國銀聯股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110143035.7/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:發動機閉環口間隙技術運用
- 下一篇:低成本硅溶膠型內墻涂料





