欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

SpringBoot中使用AOP打印接口日志的方法-創(chuàng)新互聯(lián)

前言

元江縣ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書(shū)合作)期待與您的合作!

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 中的具體概念

  1. Aspect:方面。一個(gè)可以切入多個(gè)類(lèi)的關(guān)注點(diǎn)。這個(gè)關(guān)注點(diǎn)實(shí)現(xiàn)了我們前面說(shuō)的具體的業(yè)務(wù)功能。例如打印日志,進(jìn)行數(shù)據(jù)庫(kù)的事務(wù)管理等。
  2. Joint point:被切入點(diǎn)。是指具體要實(shí)現(xiàn)前面所說(shuō)的例如打印日志,數(shù)據(jù)庫(kù)事務(wù)管理的被切入的點(diǎn)。也就是通過(guò) AOP 將切面功能動(dòng)態(tài)加入進(jìn)去的程序位置。在 Spring AOP 里面這個(gè)指的都是某個(gè)方法
  3. Pointcut:切點(diǎn)。用來(lái)指明如何通過(guò)規(guī)則匹配 Joint point。這個(gè)規(guī)則是一個(gè)表達(dá)式。在 Spring 中,默認(rèn)使用的是 AspectJ 的 pointcut 表達(dá)式語(yǔ)言
  4. Advice:指明在一個(gè)切入點(diǎn)的不同位置上采取的動(dòng)作。例如對(duì)于一個(gè)數(shù)據(jù)庫(kù)訪問(wèn)事務(wù)管理來(lái)說(shuō),在進(jìn)入方法后要開(kāi)啟事務(wù),在方法結(jié)束前要提交事務(wù),在發(fā)生錯(cuò)誤的時(shí)候要回滾事務(wù)。這屬于三個(gè)不同的 Advice,要分別進(jìn)行實(shí)現(xiàn)。Advice 通常和具體的 Pointcut 關(guān)聯(lián)在一起。
  5. AOP proxy:AOP 代理。用來(lái)實(shí)現(xiàn)將 Advice 功能動(dòng)態(tài)加入到 Pointcut 的方法。在 Spring 的 AOP 中采用動(dòng)態(tài)代理和 CGLIB 代理的方式來(lái)實(shí)現(xiàn)。而 AspectJ 則采用了特定編譯器侵入字節(jié)碼的方式來(lái)實(shí)現(xiàn)。

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)

商城網(wǎng)站建設(shè)