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

spring?boot如何通過(guò)自定義注解和AOP攔截指定的請(qǐng)求

 更新時(shí)間:2024年06月12日 09:36:15   作者:阿顧同學(xué)  
這篇文章主要介紹了spring?boot通過(guò)自定義注解和AOP攔截指定的請(qǐng)求,本文主要通過(guò)切面類和自定注解的方式,攔截指定的接口(代碼中已經(jīng)作了詳細(xì)的說(shuō)明),需要的朋友可以參考下

本文主要通過(guò)切面類和自定注解的方式,攔截指定的接口(代碼中已經(jīng)作了詳細(xì)的說(shuō)明)

一 準(zhǔn)備工作

1.1 添加依賴

通過(guò)spring boot創(chuàng)建好工程后,添加如下依賴,不然工程中無(wú)法使用切面的注解,就無(wú)法對(duì)制定的方法進(jìn)行攔截

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

1.2 demo工程 

二 自定義注解

import java.lang.annotation.*;
/**
 * @Target 此注解的作用目標(biāo),括號(hào)里METHOD的意思說(shuō)明此注解只能加在方法上面
 * @Retention 注解的保留位置,括號(hào)里RUNTIME的意思說(shuō)明注解可以存在于運(yùn)行時(shí),可以用于反射
 * @Documented 說(shuō)明該注解將包含在javadoc中
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface MonitorRequest {
}

三 切面類

/**
 * 此類為一個(gè)切面類,主要作用就是對(duì)接口的請(qǐng)求進(jìn)行攔截
 * 攔截的方式,只需要在指定接口方法上面加上@MonitorRequest注解即可
 *
 * @author guguoyu
 * @version 1.0
 * @since 2018/10/28
 */
@Aspect
@Component
public class RequestAspect {
    //使用org.slf4j.Logger,這是spring實(shí)現(xiàn)日志的方法
    private final static Logger logger = LoggerFactory.getLogger(RequestAspect.class);
    /**
     * 表示在執(zhí)行被@MonitorRequest注解修飾的方法之前 會(huì)執(zhí)行doBefore()方法
     *
     * @param joinPoint 連接點(diǎn),就是被攔截點(diǎn)
     */
    @Before(value = "@annotation(com.example.demo.annotation.MonitorRequest)")
    public void doBefore(JoinPoint joinPoint) {
        //獲取到請(qǐng)求的屬性
        ServletRequestAttributes attributes =
                (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        //獲取到請(qǐng)求對(duì)象
        HttpServletRequest request = attributes.getRequest();
        //URL:根據(jù)請(qǐng)求對(duì)象拿到訪問(wèn)的地址
        logger.info("url=" + request.getRequestURL());
        //獲取請(qǐng)求的方法,是Get還是Post請(qǐng)求
        logger.info("method=" + request.getMethod());
        //ip:獲取到訪問(wèn)
        logger.info("ip=" + request.getRemoteAddr());
        //獲取被攔截的類名和方法名
        logger.info("class=" + joinPoint.getSignature().getDeclaringTypeName() +
                "and method name=" + joinPoint.getSignature().getName());
        //參數(shù)
        logger.info("參數(shù)=" + joinPoint.getArgs().toString());
    }
}

四 Controller類

@RestController
public class TestController {
    /**
     * 添加了自定義注解@MonitorRequest
     * @return
     */
    @MonitorRequest
    @RequestMapping(value = "/test")
    public String test(){
        return "method be added @MonitorRequest";
    }
    /**
     * 沒(méi)有添加自定義注解
     * @return
     */
    @RequestMapping(value = "test2")
    public String test2(){
        return "method not be added @MonitorRequest";
    }
}

五 測(cè)試結(jié)果 

六 源碼地址

https://github.com/guguoyu/demo-monitor

到此這篇關(guān)于spring boot通過(guò)自定義注解和AOP攔截指定的請(qǐng)求的文章就介紹到這了,更多相關(guān)spring boot自定義注解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 全網(wǎng)最詳細(xì)Hutool工具詳解

    全網(wǎng)最詳細(xì)Hutool工具詳解

    Hutool的目標(biāo)是使用一個(gè)工具方法代替一段復(fù)雜代碼,從而最大限度的避免“復(fù)制粘貼”代碼的問(wèn)題,徹底改變我們寫代碼的方式。這篇文章主要介紹了全文最詳細(xì)Hutool工具詳解,需要的朋友可以參考下
    2021-12-12
  • Springboot整合Dubbo+Nacos實(shí)現(xiàn)RPC調(diào)用的示例代碼

    Springboot整合Dubbo+Nacos實(shí)現(xiàn)RPC調(diào)用的示例代碼

    隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,越來(lái)越多的企業(yè)和開發(fā)者開始關(guān)注微服務(wù)架構(gòu),Nacos是阿里巴巴開源的一個(gè)動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺(tái),本文講解如何將Spring Boot與Dubbo和Nacos整合,實(shí)現(xiàn)RPC調(diào)用,需要的朋友可以參考下
    2024-02-02
  • 多線程(多窗口賣票實(shí)例講解)

    多線程(多窗口賣票實(shí)例講解)

    下面小編就為大家?guī)?lái)一篇多線程(多窗口賣票實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • Java+opencv3.2.0之直方圖均衡詳解

    Java+opencv3.2.0之直方圖均衡詳解

    這篇文章主要為大家詳細(xì)介紹了Java+opencv3.2.0之直方圖均衡的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Spring Cache監(jiān)控配置與使用規(guī)范的建議

    Spring Cache監(jiān)控配置與使用規(guī)范的建議

    這篇文章主要介紹了Spring Cache監(jiān)控配置與使用規(guī)范的建議,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • java Hibernate多對(duì)多映射詳解及實(shí)例代碼

    java Hibernate多對(duì)多映射詳解及實(shí)例代碼

    這篇文章主要介紹了java Hibernate多對(duì)多映射詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • springboot項(xiàng)目如何按天分割日志

    springboot項(xiàng)目如何按天分割日志

    本文介紹了在SpringBoot項(xiàng)目中使用Logback實(shí)現(xiàn)日志按天滾動(dòng)的配置方法,包括配置文件的設(shè)置、高級(jí)配置優(yōu)化以及實(shí)踐中需要注意的事項(xiàng),通過(guò)合理配置,可以有效地管理日志文件,便于系統(tǒng)運(yùn)維和故障排查
    2026-01-01
  • java批量導(dǎo)入導(dǎo)出文件的實(shí)例分享(兼容xls,xlsx)

    java批量導(dǎo)入導(dǎo)出文件的實(shí)例分享(兼容xls,xlsx)

    這篇文章主要給大家介紹了利用java批量導(dǎo)入導(dǎo)出文件的相關(guān)資料,文中給出了詳細(xì)的實(shí)例代碼,并且兼容xls,xlsx,對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,下面跟著小編一起來(lái)看看詳細(xì)的介紹吧。
    2017-06-06
  • Maven配置倉(cāng)庫(kù)的方法步驟

    Maven配置倉(cāng)庫(kù)的方法步驟

    本文主要介紹了Maven配置倉(cāng)庫(kù)的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Mybatis generator如何自動(dòng)生成代碼

    Mybatis generator如何自動(dòng)生成代碼

    這篇文章主要介紹了Mybatis generator如何自動(dòng)生成代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12

最新評(píng)論

上林县| 庆安县| 滨海县| 张家港市| 武山县| 棋牌| 基隆市| 兴义市| 贡山| 南溪县| 格尔木市| 浏阳市| 虎林市| 青龙| 封丘县| 化隆| 古交市| 上虞市| 正安县| 宁津县| 汶川县| 东至县| 会同县| 宜兰县| 大冶市| 敖汉旗| 工布江达县| 通渭县| 清水县| 枞阳县| 徐汇区| 桃江县| 前郭尔| 团风县| 开化县| 金阳县| 石河子市| 崇信县| 永和县| 苏尼特左旗| 南召县|