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

SpringBoot根據(jù)目錄結(jié)構(gòu)自動生成路由前綴的實現(xiàn)代碼

 更新時間:2021年08月11日 15:28:45   作者:Maggieq8324  
本文介紹如何根據(jù)目錄結(jié)構(gòu)給RequestMapping添加路由前綴,具體實現(xiàn)方法,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧

前言

本文介紹如何根據(jù)目錄結(jié)構(gòu)給RequestMapping添加路由前綴(覆蓋RequestMappingHandlerMapping中的getMappingForMethod方法,修改其中的Url),如下圖的實際訪問路徑為:/v1/test/test。

在這里插入圖片描述

具體實現(xiàn)

配置文件指定基礎(chǔ)包

application.properties

api-package = com.coisini.springbootlearn.controller

自動補全路由前綴處理類

AutoPrefixUrlMapping.java

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
import java.lang.reflect.Method;
import java.util.Objects;

/**
 * @Description 自動補全路由前綴處理類
 *      RequestMappingHandlerMapping 負(fù)責(zé)處理標(biāo)注了@RequestMapping的控制器
 * @author coisini
 * @date Aug 10, 2021
 * @Version 1.0
 */
public class AutoPrefixUrlMapping extends RequestMappingHandlerMapping {

    /**
     * 讀取基礎(chǔ)包配置
     */
    @Value("${api-package}")
    private String bathApiPackagePath;

    /**
     * 重寫方法路由獲取
     * @param method
     * @param handlerType
     * @return
     */
    @Override
    protected RequestMappingInfo getMappingForMethod(Method method, Class<?> handlerType) {
        RequestMappingInfo mappingInfo = super.getMappingForMethod(method, handlerType);
        if (Objects.nonNull(mappingInfo)) {
            String prefix = this.getPrefix(handlerType);
            /**
             * RequestMappingInfo.paths(prefix).build() 根據(jù)前綴生成mappingInfo
             * combine(mappingInfo) 拼接原來的mappingInfo
             */
            return RequestMappingInfo.paths(prefix).build().combine(mappingInfo);
        }

        return mappingInfo;
    }

    /**
     * 獲取方法路由前綴
     * @param handleType
     * @return
     */
    private String getPrefix(Class<?> handleType) {
        String packageName = handleType.getPackage().getName();
        String dotPath = packageName.replace(this.bathApiPackagePath, "").replace(".","/");
        return dotPath;
    }

}

自動補全路由前綴配置類

AutoPrefixConfiguration.java

/**
 * @Description 自動補全路由前綴配置類
 * 通過接口的形式主動發(fā)現(xiàn)
 * @author coisini
 * @date Aug 10, 2021
 * @Version 1.0
 */
@Component
public class AutoPrefixConfiguration implements WebMvcRegistrations {
    @Override
    public RequestMappingHandlerMapping getRequestMappingHandlerMapping() {
        return new AutoPrefixUrlMapping();
    }
}

測試類

@RestController
@RequestMapping("/test")
public class TestController {

    @GetMapping(value = "/test")
    public String test(){
        return "hello";
    }

}

測試

目錄結(jié)構(gòu)如下

在這里插入圖片描述

訪問結(jié)果

在這里插入圖片描述

目錄結(jié)構(gòu)變更

在這里插入圖片描述

訪問結(jié)果

在這里插入圖片描述

到此這篇關(guān)于SpringBoot - 根據(jù)目錄結(jié)構(gòu)自動生成路由前綴的文章就介紹到這了,更多相關(guān)SpringBoot目錄結(jié)構(gòu)路由前綴內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在Java中Scanner的用法總結(jié)

    在Java中Scanner的用法總結(jié)

    這篇文章主要介紹了在Java中Scanner的用法總結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Spring零基礎(chǔ)到進(jìn)階之鴻蒙開篇

    Spring零基礎(chǔ)到進(jìn)階之鴻蒙開篇

    Spring框架是一個開放源代碼的J2EE應(yīng)用程序框架,由Rod Johnson發(fā)起,是針對bean的生命周期進(jìn)行管理的輕量級容器(lightweight container)。 Spring解決了開發(fā)者在J2EE開發(fā)中遇到的許多常見的問題,提供了功能強大IOC、AOP及Web MVC等功能
    2022-07-07
  • 詳解Maven項目缺少Maven Dependencies解決方法總結(jié)

    詳解Maven項目缺少Maven Dependencies解決方法總結(jié)

    這篇文章主要介紹了詳解Maven項目缺少Maven Dependencies解決方法總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • java.net.UnknownHostException異常的一般原因及解決步驟

    java.net.UnknownHostException異常的一般原因及解決步驟

    關(guān)于java.net.UnknownHostException大家也許都比較熟悉,這篇文章主要給大家介紹了關(guān)于java.net.UnknownHostException異常的一般原因及解決步驟,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • Java如何實現(xiàn)長圖文生成的示例代碼

    Java如何實現(xiàn)長圖文生成的示例代碼

    這篇文章主要介紹了Java如何實現(xiàn)長圖文生成的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Idea中導(dǎo)入新模塊無法被識別的問題

    Idea中導(dǎo)入新模塊無法被識別的問題

    這篇文章主要介紹了Idea中導(dǎo)入新模塊無法被識別的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Java實現(xiàn)Http請求的常用方法詳解

    Java實現(xiàn)Http請求的常用方法詳解

    在實際開發(fā)過程中,我們經(jīng)常需要調(diào)用對方提供的接口或測試自己寫的接口是否合適,本文為大家整理了Java調(diào)用第三方http接口幾種方式,需要的可以參考下
    2025-02-02
  • IntelliJ IDEA打開多個Maven的module且相互調(diào)用代碼的方法

    IntelliJ IDEA打開多個Maven的module且相互調(diào)用代碼的方法

    這篇文章主要介紹了IntelliJ IDEA打開多個Maven的module且相互調(diào)用代碼的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • Maven項目外部jar包導(dǎo)入的實現(xiàn)示例

    Maven項目外部jar包導(dǎo)入的實現(xiàn)示例

    在Maven項目里,我們經(jīng)常需要導(dǎo)入jar包依賴,本文主要介紹了Maven項目外部jar包導(dǎo)入的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-08-08
  • JavaWeb中過濾器Filter的用法詳解

    JavaWeb中過濾器Filter的用法詳解

    過濾器通常對一些web資源進(jìn)行攔截,做完一些處理器再交給下一個過濾器處理,直到所有的過濾器處理器,再調(diào)用servlet實例的service方法進(jìn)行處理。本文將通過示例為大家講解JavaWeb中過濾器Filter的用法與實現(xiàn),需要的可以參考一下
    2022-08-08

最新評論