前言
AOP 是 Aspect Oriented Program (面向切面)的編程的縮寫(xiě)。他是和面向?qū)ο缶幊滔鄬?duì)的一個(gè)概念。在面向?qū)ο蟮木幊讨?,我們傾向于采用封裝、繼承、多態(tài)等概念,將一個(gè)個(gè)的功能在對(duì)象中來(lái)實(shí)現(xiàn)。但是,我們?cè)趯?shí)際情況中也發(fā)現(xiàn),會(huì)有另外一種需求就是一類(lèi)功能在很多對(duì)象的很多方法中都有需要。例如有一些對(duì)數(shù)據(jù)庫(kù)訪問(wèn)的方法有事務(wù)管理的需求,有很多方法中要求打印日志。按照面向?qū)ο蟮姆绞?,那么這些相同的功能要在很多地方來(lái)實(shí)現(xiàn)或者在很多地方來(lái)調(diào)用。這就非常繁瑣并且和這些和業(yè)務(wù)不相關(guān)的需求耦合太緊密了。所以后來(lái)就出現(xiàn)了面向切面的編程來(lái)解決這一類(lèi)問(wèn)題,并對(duì)面向?qū)ο蟮木幊套隽撕芎玫难a(bǔ)充
概念
要很好的理解面向切面的編程,先要理解 AOP 的一些概念。在 Java 中 AspectJ 比較完整的實(shí)現(xiàn)了 AOP 的功能,但是使用起來(lái)也比較復(fù),所以這里主要是討論 Spring 的 AOP 。Spring AOP 采用簡(jiǎn)單夠用的原則,實(shí)現(xiàn)了 AOP 的核心功能。下面先說(shuō)說(shuō) AOP 中的具體概念
SprinBoot AOP 實(shí)現(xiàn)
前面我們已經(jīng)用好幾章講述了 SpringBoot 的基本使用。那么這里我們就用 SpringBoot 和 AOP 結(jié)合來(lái)實(shí)現(xiàn)一個(gè)輸出所有 Rest 接口輸入?yún)?shù)和返回參數(shù)的日志的功能。
實(shí)現(xiàn) rest 服務(wù)功能。
根據(jù)前面的文章,我們先建立一個(gè) SpingBoot 的工程如下圖所示
SpringBoot 項(xiàng)目配置
我們對(duì) SpringBoot 項(xiàng)目配置如下
server: port: 3030 servlet: context-path: /aop-demo spring: jackson: date-format: yyyy-MM-dd HH:mm:ss serialization: indent-output: true logging: level: com.yanggch: debug
當(dāng)前標(biāo)題:SpringBoot中使用AOP打印接口日志的方法-創(chuàng)新互聯(lián)
文章出自:http://chinadenli.net/article24/dojhje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、建站公司、服務(wù)器托管、網(wǎng)站收錄、App設(shè)計(jì)、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)