最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot中如何引入AOP切面編程

 更新時(shí)間:2024年05月13日 08:46:58   作者:戀上鋼琴的蟲(chóng)  
這篇文章主要介紹了springboot中如何引入AOP切面編程問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

在Spring Boot 3.0中引入AOP的過(guò)程

如下所示:

1、首先確保已經(jīng)添加了相關(guān)依賴

可以通過(guò)Maven或Gradle來(lái)管理項(xiàng)目的依賴。

對(duì)于使用Maven構(gòu)建的項(xiàng)目,需要將以下依賴添加到pom.xml文件中

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-aop</artifactId>
</dependency>

2、創(chuàng)建切面類(Aspect)

并定義切點(diǎn)(Pointcut)、前置通知(Before Advice)等邏輯。

切面類應(yīng)該被注解為@Component,這樣才能被自動(dòng)掃描到。

在com.lingyi.mybatis.aop包下創(chuàng)建一個(gè)TimeCustomAspect.java的AOP類,增強(qiáng)方法執(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.*.*())") //包c(diǎn)om.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í)行耗時(shí):"+ (end - start));
        return result;
    }
 
}
 

3、測(cè)試

登錄swagger UI界面,訪問(wèn)controller層某個(gè)接口。下面已/person接口為例

http://127.0.0.1:8081/swagger-ui/index.html

經(jīng)過(guò)測(cè)試,編寫(xiě)的AOP切面編程程序生效,AOP會(huì)根據(jù)切點(diǎn)表達(dá)式自動(dòng)進(jìn)行切面處理。

當(dāng)符合條件的方法調(diào)用發(fā)生時(shí),就會(huì)執(zhí)行相應(yīng)的通知邏輯。

4、精細(xì)化切入

為了更加精細(xì)化對(duì)指定方法進(jìn)行切入,切面還可以針對(duì)某些注解進(jìn)行切入,從而實(shí)現(xiàn)對(duì)指定方法進(jìn)行增強(qiáng)。

在方法上添加@Loggin注解

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java 線程池核心參數(shù)、執(zhí)行流程與實(shí)戰(zhàn)建議全解析

    Java 線程池核心參數(shù)、執(zhí)行流程與實(shí)戰(zhàn)建議全解析

    主要介紹了 Java 線程池:核心參數(shù)、執(zhí)行流程與實(shí)戰(zhàn)建議,我將用最通俗的方式帶你搞懂 Java 線程池,從構(gòu)造函數(shù)開(kāi)始,講透執(zhí)行機(jī)制、參數(shù)配置,再結(jié)合我在真實(shí)項(xiàng)目中的使用經(jīng)驗(yàn),總結(jié)出一套實(shí)戰(zhàn)建議,需要的朋友可以參考下
    2025-04-04
  • Java與JavaScript自動(dòng)化測(cè)試Selenium使用詳解

    Java與JavaScript自動(dòng)化測(cè)試Selenium使用詳解

    這篇文章主要介紹了Java與JavaScript自動(dòng)化測(cè)試Selenium的使用,Selenium是一個(gè)用于Web應(yīng)用程序測(cè)試的工具,Selenium測(cè)試直接運(yùn)行在瀏覽器中,就像真正的用戶在操作一樣,需要的朋友可以參考下
    2025-05-05
  • 解決@DateTimeFormat格式化時(shí)間出錯(cuò)問(wèn)題

    解決@DateTimeFormat格式化時(shí)間出錯(cuò)問(wèn)題

    這篇文章主要介紹了解決@DateTimeFormat格式化時(shí)間出錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 聊聊Redis的單線程模型

    聊聊Redis的單線程模型

    Redis是單線程,主要是指Redis的網(wǎng)絡(luò)IO和讀寫(xiě)是由一個(gè)線程來(lái)完成的,但Redis的其他功能,比如持久化、異步刪除、集群數(shù)據(jù)同步等,其實(shí)是由額外的線程執(zhí)行的。這不是本文討論的重點(diǎn),有個(gè)印象即可
    2022-12-12
  • SpringMVC 中HttpMessageConverter簡(jiǎn)介和Http請(qǐng)求415 的問(wèn)題

    SpringMVC 中HttpMessageConverter簡(jiǎn)介和Http請(qǐng)求415 的問(wèn)題

    本文介紹且記錄如何解決在SpringMVC 中遇到415 Unsupported Media Type 的問(wèn)題,并且順便介紹Spring MVC的HTTP請(qǐng)求信息轉(zhuǎn)換器HttpMessageConverter
    2016-07-07
  • IDEA 2020.2 部署JSF項(xiàng)目的詳細(xì)過(guò)程

    IDEA 2020.2 部署JSF項(xiàng)目的詳細(xì)過(guò)程

    本文通過(guò)圖文并茂的形式教大家如何在IDEA中創(chuàng)建一個(gè)JSF項(xiàng)目及遇到問(wèn)題的解決方法,感興趣的朋友跟隨小編一起看看吧
    2021-09-09
  • java兩個(gè)線程同時(shí)寫(xiě)一個(gè)文件

    java兩個(gè)線程同時(shí)寫(xiě)一個(gè)文件

    這篇文章主要為大家詳細(xì)介紹了java兩個(gè)線程同時(shí)寫(xiě)一個(gè)文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • jenv實(shí)現(xiàn)mac下多版本jdk管理以及切換方式

    jenv實(shí)現(xiàn)mac下多版本jdk管理以及切換方式

    文章介紹在Mac上使用jenv管理多版本JDK的方法,包括下載安裝指定JDK版本、配置環(huán)境變量及切換操作,同時(shí)說(shuō)明Maven和IDEA的JDK配置步驟,確保不同項(xiàng)目使用正確版本,涉及路徑設(shè)置、項(xiàng)目SDK及Maven參數(shù)配置
    2025-08-08
  • 使用Java實(shí)現(xiàn)6種常見(jiàn)負(fù)載均衡算法

    使用Java實(shí)現(xiàn)6種常見(jiàn)負(fù)載均衡算法

    Java負(fù)載均衡算法也是分布式系統(tǒng)中的重要組成部分,用于將來(lái)自客戶端的請(qǐng)求分配到不同的后端服務(wù)器上,本文將介紹常見(jiàn)的Java負(fù)載均衡算法,輪詢法、加權(quán)隨機(jī)法……一次性讓你了解?6?種常見(jiàn)負(fù)載均衡算法
    2023-06-06
  • elasticsearch kibana簡(jiǎn)單查詢講解

    elasticsearch kibana簡(jiǎn)單查詢講解

    今天小編就為大家分享一篇關(guān)于elasticsearch kibana簡(jiǎn)單查詢講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02

最新評(píng)論

资阳市| 兰考县| 海阳市| 日照市| 佛坪县| 淮安市| 额尔古纳市| 那曲县| 郧西县| 九江市| 施秉县| 庄河市| 文昌市| 来凤县| 西乌珠穆沁旗| 黔南| 同心县| 怀化市| 安国市| 松溪县| 六盘水市| 麻城市| 芜湖县| 招远市| 横峰县| 灵宝市| 桓仁| 牡丹江市| 浠水县| 睢宁县| 阳原县| 长顺县| 启东市| 玉树县| 马关县| 亚东县| 元谋县| 保靖县| 杭锦后旗| 眉山市| 泸州市|