Spring MVC項(xiàng)目中l(wèi)og4J和AOP使用詳解
前言
日志處理是每個(gè)項(xiàng)目當(dāng)中一個(gè)非常重要的內(nèi)容。沒有了日志,也就失去了對(duì)系統(tǒng)的可控性。沒有日志,系統(tǒng)出現(xiàn)任何問題,都會(huì)沒有蹤跡可尋,這對(duì)一個(gè)信息系統(tǒng)而言是非常危險(xiǎn)的。
項(xiàng)目中需要將service中的類方法的調(diào)用過程,使用log4j日志記錄。
service中的類和方法都很多,不可能在每個(gè)類中單獨(dú)添加log4j日志記錄的功能,因此我們?cè)谶@里使用AOP的思想進(jìn)行橫向切面。
以service類中的方法為切入點(diǎn),通過AOP在方法調(diào)用前后使用log4j輸出日志,內(nèi)容包括正在調(diào)用的類和方法名。
在配置過程中,筆者碰到了一些或大或小的細(xì)節(jié)上的問題,在此作為記錄。
首先是AOP的配置上,我們有兩種選擇,一是通過XML配置,二是通過注解。
XML配置可以通過以下示例:
XML配置
則對(duì)應(yīng)的Aspect方法可以不用使用@Aspect、@Before和@After注解。
如果使用注解方式,則在XML配置文件中,只需要一行配置,開啟自動(dòng)代理功能即可:
自動(dòng)代理
此時(shí),對(duì)應(yīng)的Aspect方法可以如下示例:
Aspect1
其次,是Spring配置文件所屬域上的坑,在這里配置的AOP的XML文件,如果需要成功執(zhí)行,需要在
web.xml文件中,將此XML配置文件加入到Servlet-Context中,而不是Spring-Context中,示例如下:
全局context
上圖是配置全局的spring上下文,但是aop配置文件在這里不能成功。
Servlet的context
我們需要把a(bǔ)op的配置加載,放在servlet的初始化上下文中。
最后,我們運(yùn)行工程,使用該方法,查看AOP結(jié)果:
結(jié)果
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
java操作mongodb基礎(chǔ)(查詢 排序 輸出list)
java操作mongodb基礎(chǔ)學(xué)習(xí)查詢,排序,limit,輸出為list實(shí)例,大家參考使用吧2013-12-12MySQL?MyBatis?默認(rèn)插入當(dāng)前時(shí)間方式
這篇文章主要介紹了MySQL?MyBatis?默認(rèn)插入當(dāng)前時(shí)間方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10一篇文章帶你學(xué)會(huì)Spring?MVC表單標(biāo)簽
Spring MVC表單標(biāo)簽是網(wǎng)頁的可配置和可重復(fù)使用的構(gòu)建塊,下面這篇文章主要給大家介紹了如何通過一篇文章學(xué)會(huì)Spring?MVC表單標(biāo)簽的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03解讀CommandLineRunner或者ApplicationRunner接口
這篇文章主要介紹了解讀CommandLineRunner或者ApplicationRunner接口的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02Spring運(yùn)行時(shí)手動(dòng)注入bean的方法實(shí)例
spring給我們提供了IOC服務(wù),讓我們可以用注解的方式,方便的使用bean的相互引用,下面這篇文章主要給大家介紹了關(guān)于Spring運(yùn)行時(shí)手動(dòng)注入bean的相關(guān)資料,需要的朋友可以參考下2022-05-05java集合PriorityQueue優(yōu)先級(jí)隊(duì)列方法實(shí)例
這篇文章主要為大家介紹了java集合PriorityQueue優(yōu)先級(jí)隊(duì)列方法實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12java實(shí)現(xiàn)的漢字轉(zhuǎn)五筆功能實(shí)例
這篇文章主要介紹了java實(shí)現(xiàn)的漢字轉(zhuǎn)五筆功能,結(jié)合具體實(shí)例形式分析了java基于字符串遍歷與編碼轉(zhuǎn)換等操作實(shí)現(xiàn)五筆編碼獲取的相關(guān)操作技巧,需要的朋友可以參考下2017-06-06SpringBoot項(xiàng)目中使用Sharding-JDBC實(shí)現(xiàn)讀寫分離的詳細(xì)步驟
Sharding-JDBC是一個(gè)分布式數(shù)據(jù)庫(kù)中間件,它不僅支持?jǐn)?shù)據(jù)分片,還可以輕松實(shí)現(xiàn)數(shù)據(jù)庫(kù)的讀寫分離,本文介紹如何在Spring Boot項(xiàng)目中集成Sharding-JDBC并實(shí)現(xiàn)讀寫分離的詳細(xì)步驟,需要的朋友可以參考下2024-08-08