aop為aspect oriented programming的縮寫,意思是面向切面程式設計,通過預編譯的方式和執行時動態**實現程式功能的統一維護的一種技術。利用aop可以對業務邏輯進行分離,降低耦合度,提高可重用性,提高開發效率。主要用途
日誌記錄
事務處理
異常處理
安全處理
效能統計
···
在spring boot中使用aop記錄介面訪問記錄
1.新增依賴
org.springframework.boot<
/groupid>
spring-boot-starter-aop<
/artifactid>
<
/dependency>
2.編寫切面類@aspect
// @aspect切面類註解
@component
// @component把切面類加入到ioc容器中
public
class
shuiboaspect
@before
("shuibopointcutlog()"
)public
void
before
(joinpoint joinpoint)
logger.
info
("入參:"
+ params);}
string remoteaddr = request.
getremoteaddr()
; logger.
info
("ip:"
+ remoteaddr)
; string declaringtypename = joinpoint.
getsignature()
.getdeclaringtypename()
; logger.
info
("類名:"
+ declaringtypename)
; string methodname = joinpoint.
getsignature()
.getname()
; logger.
info
("方法名:"
+ methodname);}
@after
("shuibopointcutlog()"
)public
void
after()
@afterreturning
(pointcut =
"shuibopointcutlog()"
, returning =
"object"
)public
void
getafterreturn
(object object)
ms", endtime);}
}
3.編寫測試類@restcontroller
public
class
testcontroller
else
return shuibo;
}}
4.執行結果(控制台)info 10216---
[nio-
8080
-exec-
1] cn.shuibo.aspect.shuiboaspect: 請求url:http:
//localhost:
8080
/index
info 10216---
[nio-
8080
-exec-
1] cn.shuibo.aspect.shuiboaspect: 請求方式:get
info 10216---
[nio-
8080
-exec-
1] cn.shuibo.aspect.shuiboaspect: 入參: text=
1 info 10216---
[nio-
8080
-exec-
1] cn.shuibo.aspect.shuiboaspect: ip:0:
0:0:
0:0:
0:0:
1 info 10216---
[nio-
8080
-exec-
1] cn.shuibo.aspect.shuiboaspect: 類名:cn.shuibo.controller.testcontroller
info 10216---
[nio-
8080
-exec-
1] cn.shuibo.aspect.shuiboaspect: 方法名:index
info 10216---
[nio-
8080
-exec-
1] cn.shuibo.aspect.shuiboaspect: 訪問耗時:
4ms
總結 SpringBoot如何優雅地使用Swagger2
spring boot 框架是目前非常流行的微服務框架,我們很多情況下使用它來提供 rest api。而對於 rest api 來說很重要的一部分內容就是文件,swagger 為我們提供了一套通過 和註解自動生成文件的方法,這一點對於保證 api 文件的及時性將有很大的幫助。本文將使用 swagge...
優雅的使用springboot整合任務排程
任務排程器就是按照規定的計畫完成任務 比如windows,linux的自帶的任務排程系統功能 平常開發中也就是按照規定的時間點輪詢執行計畫任務 比如每週三的凌晨進行資料備份 或者按時間隔觸發一次任務排程 比如每3小時執行一次定時抓拍 如果有用過quartz的讀者肯定了解cron時鐘週期計畫 下面是c...
優雅的使用Python之軟體管理
方法一 lpython get pip.py d python33 python get pip.py downloading unpacking pip downloading unpacking setuptools installing collected packages pip,setup...