2011-09-13 100 views
0

我們正在研究Spring的AOP框架,以在基於Spring MVC的應用程序中添加審計日誌功能。使用Spring AOP的審計日誌

在我們的應用程序中,無論何時調用服務方法,我們都會傳遞額外的審計日誌對象(除了常規方法參數外)。這個審計日誌對象具有很少的屬性,如用戶名,用戶ID和用戶IP地址等。

在實際的服務方法中,我們根據被調用的方法或正在執行的操作在審計日誌對象上設置更多的屬性服務方法。

這是非常動態的,因方法而異。

在AOP類中,我們可以攔截方法參數和返回值。但是,根據服務方法中執行的操作計算出的值,然後在審計日誌對象上設置值呢?這個值不會在AOP類中可用。

基本上我們需要填充審計日誌對象,然後在執行方法後將其保存在數據庫中,方法中的come參數僅在被截獲的方法中設置。

有什麼我們可以做到的?

請幫忙。

回答

0

在AOP類中,您應該有權訪問審覈對象,因爲您可以訪問方法參數。因此,在方法返回後,在方法參數中找到審計對象並對其進行操作。只要您可以按類型查找它,那麼審覈對象的哪個參數無關緊要。

您在審計對象上設置的值應該仍然存在,因爲審計對象是通過引用傳遞的。