前言
日志處理是每個項目當中一個非常重要的內容。沒有了日志,也就失去了對系統的可控性。沒有日志,系統出現任何問題,都會沒有蹤跡可尋,這對一個信息系統而言是非常危險的。
項目中需要將service中的類方法的調用過程,使用log4j日志記錄。
service中的類和方法都很多,不可能在每個類中單獨添加log4j日志記錄的功能,因此我們在這里使用aop的思想進行橫向切面。
以service類中的方法為切入點,通過aop在方法調用前后使用log4j輸出日志,內容包括正在調用的類和方法名。
在配置過程中,筆者碰到了一些或大或小的細節上的問題,在此作為記錄。
首先是aop的配置上,我們有兩種選擇,一是通過xml配置,二是通過注解。
xml配置可以通過以下示例:
xml配置
則對應的aspect方法可以不用使用@aspect、@before和@after注解。
如果使用注解方式,則在xml配置文件中,只需要一行配置,開啟自動代理功能即可:
自動代理
此時,對應的aspect方法可以如下示例:
aspect1
其次,是spring配置文件所屬域上的坑,在這里配置的aop的xml文件,如果需要成功執行,需要在
web.xml文件中,將此xml配置文件加入到servlet-context中,而不是spring-context中,示例如下:
全局context
上圖是配置全局的spring上下文,但是aop配置文件在這里不能成功。
servlet的context
我們需要把aop的配置加載,放在servlet的初始化上下文中。
最后,我們運行工程,使用該方法,查看aop結果:
結果
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。
原文鏈接:http://www.jianshu.com/p/6812ec44a7a2