欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot中如何引入AOP切面編程

 更新時間:2024年05月13日 08:46:58   作者:戀上鋼琴的蟲  
這篇文章主要介紹了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)自定義重試工具類

    Java實現(xiàn)自定義重試工具類

    這篇文章主要為大家詳細介紹了如何基于Java實現(xiàn)自定義重試工具類,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-11-11
  • Java實現(xiàn)Excel導入導出數(shù)據(jù)庫的方法示例

    Java實現(xiàn)Excel導入導出數(shù)據(jù)庫的方法示例

    這篇文章主要介紹了Java實現(xiàn)Excel導入導出數(shù)據(jù)庫的方法,結(jié)合實例形式分析了java針對Excel的讀寫及數(shù)據(jù)庫操作相關實現(xiàn)技巧,需要的朋友可以參考下
    2017-08-08
  • Java?Playwright實現(xiàn)瀏覽器最大化

    Java?Playwright實現(xiàn)瀏覽器最大化

    Playwright?是一個用于自動化?Web?應用測試的現(xiàn)代工具,支持多種語言(包括?Java)及多個瀏覽器,本文主要介紹了Java如何使用Playwright實現(xiàn)瀏覽器最大化,需要的可以參考下
    2024-12-12
  • Java實現(xiàn)json數(shù)據(jù)處理的常用腳本分享

    Java實現(xiàn)json數(shù)據(jù)處理的常用腳本分享

    這篇文章主要為大家詳細介紹了Java實現(xiàn)json數(shù)據(jù)處理的常用腳本,文中的示例代碼講解詳細,具有一定的參考價值,感興趣的小伙伴可以學習一下
    2023-03-03
  • Java ThreadPool的使用解析

    Java ThreadPool的使用解析

    這篇文章主要介紹了Java ThreadPool的使用解析,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-10-10
  • Java 隨機取字符串的工具類

    Java 隨機取字符串的工具類

    隨機數(shù)在實際中使用很廣泛,比如要隨即生成一個固定長度的字符串、數(shù)字?;蛘唠S即生成一個不定長度的數(shù)字、或者進行一個模擬的隨機選擇等等。Java提供了最基本的工具,可以幫助開發(fā)者來實現(xiàn)這一切
    2014-01-01
  • 關于springcloud集成nacos遇到的問題

    關于springcloud集成nacos遇到的問題

    這篇文章主要介紹了關于springcloud集成nacos遇到的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 2024年最新IntelliJ?IDEA常用的小技巧總結(jié)(JAVA新手上路必備)

    2024年最新IntelliJ?IDEA常用的小技巧總結(jié)(JAVA新手上路必備)

    這篇文章主要介紹了2024年最新IntelliJ?IDEA常用小技巧的相關資料,文中包括IntelliJ?IDEA的概述、下載與安裝、快速創(chuàng)建并運行Java工程、詳細設置、快速開發(fā)、多模塊的IDEA工程以及最新變化,需要的朋友可以參考下
    2025-01-01
  • 基于jdbc處理Clob的使用介紹

    基于jdbc處理Clob的使用介紹

    本篇文章是對jdbc處理Clob的使用進行了分析介紹,需要的朋友參考下
    2013-05-05
  • 一文帶你搞懂Java定時器Timer的使用

    一文帶你搞懂Java定時器Timer的使用

    定時器類似于我們生活中的鬧鐘,可以設定一個時間來提醒我們。而定時器是指定一個時間去執(zhí)行一個任務,讓程序去代替人工準時操作。本文就來聊聊Java定時器Timer的使用,需要的可以參考一下
    2023-01-01

最新評論