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

springboot中如何引入AOP切面編程

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

在Spring Boot 3.0中引入AOP的過程

如下所示:

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

可以通過Maven或Gradle來管理項(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、測試

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

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

經(jīng)過測試,編寫的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í)現(xiàn)自定義重試工具類

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

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

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

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

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

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

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

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

    Java ThreadPool的使用解析

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

    Java 隨機(jī)取字符串的工具類

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

    關(guān)于springcloud集成nacos遇到的問題

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

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

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

    基于jdbc處理Clob的使用介紹

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

    一文帶你搞懂Java定時(shí)器Timer的使用

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

最新評(píng)論