當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringBoot2.0 基础案例(11):配置AOP切面编程,解决日志记录业务
生活随笔
收集整理的這篇文章主要介紹了
SpringBoot2.0 基础案例(11):配置AOP切面编程,解决日志记录业务
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文源碼
GitHub地址:知了一笑
https://github.com/cicadasmile/spring-boot-base
一、AOP切面編程
1、什么是AOP編程
在軟件業,AOP為Aspect Oriented Programming的縮寫,意為:面向切面編程,通過預編譯方式和運行期動態代理實現程序功能的統一維護的一種技術。AOP是OOP(面向對象編程)的延續,是軟件開發中的一個熱點,也是Spring框架中的一個重要內容,是函數式編程的一種衍生范型。利用AOP可以對業務邏輯的各個部分進行隔離,從而使得業務邏輯各部分之間的耦合度降低,提高程序的可重用性,同時提高了開發的效率。
2、AOP編程特點
1)AOP采取橫向抽取機制,取代了傳統縱向繼承體系重復性代碼 2)經典應用:事務管理、性能監視、安全檢查、緩存 、日志等 3)aop底層將采用代理機制進行實現 4)接口 + 實現類 :spring采用 jdk 的動態代理Proxy 5)實現類:spring 采用 cglib字節碼增強3、AOP中術語和圖解
1)target:目標類需要被代理的類。例如:UserService 2)Joinpoint:連接點所謂連接點是指那些可能被攔截到的方法。例如:所有的方法 3)PointCut:切入點已經被增強的連接點。例如:addUser() 4)advice:通知/增強增強代碼。例如:after、before 5)Weaving:織入指把增強advice應用到目標對象target來創建新的代理對象proxy的過程. 6)proxy 代理類 7) Aspect(切面): 是切入點pointcut和通知advice的結合一個線是一個特殊的面。一個切入點和一個通知,組成成一個特殊的面。二、與SpringBoot2.0整合
1、核心依賴
<!-- AOP依賴 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency>2、編寫日志記錄注解
package com.boot.aop.config; import java.lang.annotation.*; @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface LogFilter {String value() default "" ; }3、編寫日志記錄的切面代碼
這里分為兩種情況處理,一種正常的請求日志,和系統異常的錯誤日志。
核心注解兩個。@Aspect和@Component。
4、請求日志測試
@LogFilter("保存請求日志") @RequestMapping("/saveRequestLog") public String saveRequestLog (@RequestParam("name") String name){return "success:"+name ; }切面類信息打印
/*** 請求路徑:http://localhost:8011/saveRequestLog* 請求方法:saveRequestLog* 模塊描述:保存請求日志* 請求參數:["cicada"]*/5、異常日志測試
@LogFilter("保存異常日志") @RequestMapping("/saveExceptionLog") public String saveExceptionLog (@RequestParam("name") String name){int error = 100 / 0 ;System.out.println(error);return "success:"+name ; }切面類信息打印
/*** 捕獲異常:/ by zero* 請求路徑:http://localhost:8011/saveExceptionLog* 請求方法:saveExceptionLog* 模塊描述:保存異常日志* 請求參數:["cicada"]*/三、源代碼地址
GitHub地址:知了一笑 https://github.com/cicadasmile/spring-boot-base 碼云地址:知了一笑 https://gitee.com/cicadasmile/spring-boot-base
總結
以上是生活随笔為你收集整理的SpringBoot2.0 基础案例(11):配置AOP切面编程,解决日志记录业务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mac 打开jupyter
- 下一篇: VMware VDI技术与实现