springboot中如何引入AOP切面編程
在Spring Boot 3.0中引入AOP的過程
如下所示:
1、首先確保已經(jīng)添加了相關依賴
可以通過Maven或Gradle來管理項目的依賴。
對于使用Maven構(gòu)建的項目,需要將以下依賴添加到pom.xml文件中
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>
2、創(chuàng)建切面類(Aspect)
并定義切點(Pointcut)、前置通知(Before Advice)等邏輯。
切面類應該被注解為@Component
,這樣才能被自動掃描到。
在com.lingyi.mybatis.aop包下創(chuàng)建一個TimeCustomAspect.java的AOP類,增強方法執(zhí)行的行為。
package com.lingyi.mybatis.aop; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.springframework.stereotype.Component; import java.util.Arrays; /** * 自定義aop切面 */ @Aspect @Component public class TimeCustomAspect { @Before("execution(* com.lingyi.mybatis.controller.*.*())") //包com.lingyi.mybatis.controller下的所有類和類中的方法都滿足該AOP的條件 public void beforeAdvice(){ System.out.println("方法執(zhí)行前....."); } @After("execution(* com.lingyi.mybatis.controller.*.*())") public void afterAdvice(){ System.out.println("方法執(zhí)行后......."); } @Around("execution(* com.lingyi.mybatis.controller.*.*())") public Object recordTimeCustom(ProceedingJoinPoint pjp) throws Throwable{ long start = System.currentTimeMillis(); Object result = pjp.proceed(); long end = System.currentTimeMillis(); String className = pjp.getTarget().getClass().getName(); String method = pjp.getSignature().getName(); String args = Arrays.toString(pjp.getArgs()); System.out.println("類:"+className + ",方法:"+method +",參數(shù):"+args +",執(zhí)行耗時:"+ (end - start)); return result; } }
3、測試
登錄swagger UI界面,訪問controller層某個接口。下面已/person接口為例
http://127.0.0.1:8081/swagger-ui/index.html
經(jīng)過測試,編寫的AOP切面編程程序生效,AOP會根據(jù)切點表達式自動進行切面處理。
當符合條件的方法調(diào)用發(fā)生時,就會執(zhí)行相應的通知邏輯。
4、精細化切入
為了更加精細化對指定方法進行切入,切面還可以針對某些注解進行切入,從而實現(xiàn)對指定方法進行增強。
在方法上添加@Loggin注解
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Java實現(xiàn)Excel導入導出數(shù)據(jù)庫的方法示例
這篇文章主要介紹了Java實現(xiàn)Excel導入導出數(shù)據(jù)庫的方法,結(jié)合實例形式分析了java針對Excel的讀寫及數(shù)據(jù)庫操作相關實現(xiàn)技巧,需要的朋友可以參考下2017-08-08Java實現(xiàn)json數(shù)據(jù)處理的常用腳本分享
這篇文章主要為大家詳細介紹了Java實現(xiàn)json數(shù)據(jù)處理的常用腳本,文中的示例代碼講解詳細,具有一定的參考價值,感興趣的小伙伴可以學習一下2023-03-032024年最新IntelliJ?IDEA常用的小技巧總結(jié)(JAVA新手上路必備)
這篇文章主要介紹了2024年最新IntelliJ?IDEA常用小技巧的相關資料,文中包括IntelliJ?IDEA的概述、下載與安裝、快速創(chuàng)建并運行Java工程、詳細設置、快速開發(fā)、多模塊的IDEA工程以及最新變化,需要的朋友可以參考下2025-01-01