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

SpringBoot自定義請求前綴的代碼步驟

 更新時間:2025年10月14日 09:45:04   作者:盹貓  
在web開發(fā)中,自定義路徑是非常重要的,它可以更容易的區(qū)分不同服務(wù)和不同的功能模塊,使后端服務(wù)接口變得更加有序,SpringBoot經(jīng)常用于web開發(fā),這篇文章就是記錄如何在SpringBoot中進(jìn)行自定義接口路徑的開發(fā),需要的朋友可以參考下

前言

在web開發(fā)中,自定義路徑是非常重要的,它可以更容易的區(qū)分不同服務(wù)和不同的功能模塊,使后端服務(wù)接口變得更加有序(完全無規(guī)則的接口簡直糟糕透了) ,SpringBoot經(jīng)常用于web開發(fā),當(dāng)然也可以進(jìn)行路徑的自定義,這篇文章就是記錄如何在SpringBoot中進(jìn)行自定義接口路徑的開發(fā).

環(huán)境準(zhǔn)備

版本

依賴版本
JDK21
SpringBoot3.5.6

Pom依賴

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.5.6</version>
    </parent>
    <properties>
        <maven.compiler.source>21</maven.compiler.source>
        <maven.compiler.target>21</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
 
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

只需要進(jìn)行路徑配置,只用到基礎(chǔ)的springboot的web依賴和JDK.

代碼步驟

1、全局路徑

在SpringBoot中如果想整個應(yīng)用程序都使用自定義的路徑前綴,可以直接在配置文件中進(jìn)行配置,該配置主要用于標(biāo)識運(yùn)行某一個程序或服務(wù). 配置內(nèi)容如下:

server:
    servlet:
        context-path: /myapp

這樣在請求時就需要在請求時加入 /myapp 前綴作為請求. 即:

http://localhost:8080/users 

變?yōu)?/p>

http://localhost:8080/myapp/users

2、繼承路徑

在SpringBoot中同樣支持使用繼承的方式來實(shí)現(xiàn)自定義的路徑,即一個子控制器類繼承一個父控制器抽象類. 

如下代碼:

抽象類

package com.nodcat.api;
 
import org.springframework.web.bind.annotation.RequestMapping;
 
@RequestMapping("/api")
public abstract class AbsUserController {
}

繼承類

package com.nodcat;
 
import com.nodcat.api.AbsUserController;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
 
@RestController
public class UserController extends AbsUserController {
 
    @GetMapping("/users")
    public String user() {
        return "Hello, user!";
    }
}

這樣我們就可以通過下面的請求獲取用戶:

http://localhost:8080/api/users 

3、配置文件

如果要進(jìn)行不同的包內(nèi)所有類的路徑的自定義配置,可以通過繼承WebMvcConfigurer自定義配置類的方式進(jìn)行,代碼如下:

package com.nodcat.config;
 
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
import java.util.Map;
 
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    //app商家接口
    //app消費(fèi)者接口
    //管理員接口
    //開放接口
    private final Map<String, String> prefixToPackage = Map.of(
            "/app/merchant", "com.nodcat.api.app.merchant",
            "/app/consumer", "com.nodcat.api.app.consumer",
            "/admin", "com.nodcat.api.admin",
            "/open", "com.nodcat.api.open"
    );
 
    @Override
    public void configurePathMatch(PathMatchConfigurer configurer) {
        prefixToPackage.forEach((prefix, pkg) ->
                configurer.addPathPrefix(prefix, c -> c.getPackage().getName().startsWith(pkg))
        );
    }
}

通過上述配置,我們就對app商家接口,app消費(fèi)者接口,管理員接口,開放接口進(jìn)行前綴的區(qū)分,我們只需要在對應(yīng)的包內(nèi)實(shí)現(xiàn)對應(yīng)的控制器就可以了. (在com.nodcat.api.admin包下的所有控制器路徑都前綴都會加上/admin,即管理員的控制器)

疑問解答

直接通過繼承的方式,在子類使用@RequestMapping 可以實(shí)現(xiàn)路徑拼接么?

不可以,在子類中使用@RequestMapping會覆蓋父類的@RequestMapping的路徑定義,路徑不會被拼接.

總結(jié)

自定義路徑可以通過[全局路徑 繼承路徑 配置文件] 的方式進(jìn)行,你可以在實(shí)際開發(fā)中按實(shí)際需要進(jìn)行選擇.

到此這篇關(guān)于SpringBoot自定義請求前綴的代碼步驟的文章就介紹到這了,更多相關(guān)SpringBoot自定義請求前綴內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java的Lombok之@Builder使用總結(jié)

    Java的Lombok之@Builder使用總結(jié)

    這篇文章主要介紹了Java的Lombok之@Builder使用總結(jié),當(dāng)不使用@Builder注解到類上,創(chuàng)建T1的有參構(gòu)造函數(shù),入?yún)⒉粌H包括T1中所有的參數(shù),還包括T中所有的參數(shù),T2的屬性由T1在有參構(gòu)造函數(shù)中通過調(diào)用父類構(gòu)造器的方式賦初值,需要的朋友可以參考下
    2023-12-12
  • spring的pointcut正則表達(dá)式的實(shí)現(xiàn)

    spring的pointcut正則表達(dá)式的實(shí)現(xiàn)

    本文主要介紹了spring的pointcut正則表達(dá)式的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Java中類的加載順序剖析(常用于面試題)

    Java中類的加載順序剖析(常用于面試題)

    這篇文章主要介紹了Java中類的加載順序剖析(常用于面試題),本文直接給出代碼實(shí)例和運(yùn)行結(jié)果,給后給出了加載過程總結(jié),需要的朋友可以參考下
    2015-03-03
  • Java cglib動態(tài)代理原理分析

    Java cglib動態(tài)代理原理分析

    這篇文章主要介紹了Java cglib動態(tài)代理的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-05-05
  • Spring?Boot集成JasperReport生成文檔的方法

    Spring?Boot集成JasperReport生成文檔的方法

    由于工作需要,要實(shí)現(xiàn)后端根據(jù)模板動態(tài)填充數(shù)據(jù)生成PDF文檔,通過技術(shù)選型,使用Ireport5.6來設(shè)計模板,結(jié)合JasperReports5.6工具庫來調(diào)用渲染生成PDF文檔,這篇文章主要介紹了Spring?Boot集成JasperReport生成文檔,需要的朋友可以參考下
    2023-09-09
  • springcloud集成nacos?使用lb?無效問題解決方案

    springcloud集成nacos?使用lb?無效問題解決方案

    這篇文章主要介紹了解決springcloud集成nacos?使用lb?無效,通過查看spring-cloud-starter-gateway?jar中的自動配置類的源碼,得知,該jar包中是不支持負(fù)載均衡的,需要引入spring-cloud-starter-loadbalancer?來支持,需要的朋友可以參考下
    2023-04-04
  • Java泛型可行與不可行的原理示例解析

    Java泛型可行與不可行的原理示例解析

    這篇文章主要為大家介紹了Java泛型可行與不可行的原理示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加
    2023-05-05
  • java集合中的迭代器Iterator和數(shù)組內(nèi)置方法及常見的報錯解決方案

    java集合中的迭代器Iterator和數(shù)組內(nèi)置方法及常見的報錯解決方案

    文章介紹了Java集合框架中迭代器(Iterator)的使用,以及數(shù)組和集合的內(nèi)置方法,重點(diǎn)解釋了在遍歷集合時刪除元素時可能出現(xiàn)的`ConcurrentModificationException`異常,并說明了如何正確地使用迭代器來刪除集合中的元素,感興趣的朋友跟隨小編一起看看吧
    2025-02-02
  • java實(shí)現(xiàn)微信小程序加密數(shù)據(jù)解密算法

    java實(shí)現(xiàn)微信小程序加密數(shù)據(jù)解密算法

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)微信小程序加密數(shù)據(jù)解密算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • 詳解使用Spring Security進(jìn)行自動登錄驗證

    詳解使用Spring Security進(jìn)行自動登錄驗證

    本篇文章主要介紹了詳解使用Spring Security進(jìn)行自動登錄驗證,非常具有實(shí)用價值,需要的朋友可以參考下
    2017-09-09

最新評論

嵩明县| 镇远县| 镇宁| 息烽县| 鄂伦春自治旗| 绥阳县| 平乡县| 泰州市| 行唐县| 和静县| 儋州市| 旅游| 丰顺县| 土默特左旗| 洛浦县| 镇巴县| 蒲江县| 西青区| 开化县| 葫芦岛市| 西和县| 肇东市| 朔州市| 武穴市| 库车县| 泌阳县| 富源县| 惠东县| 巴彦县| 康马县| 鄂温| 江阴市| 娄烦县| 铁力市| 边坝县| 肇州县| 措美县| 长沙市| 揭西县| 黄陵县| 金湖县|