SpringBoot實(shí)現(xiàn)接口統(tǒng)一前綴
需求
需求如題,想給一個(gè) spring boot 項(xiàng)目的所有請(qǐng)求路徑添加統(tǒng)一前綴,可以通過 context-path 來配置。但是在同時(shí)存在靜態(tài)資源和 Controller 接口的項(xiàng)目中,如果希望靜態(tài)資源從根路徑訪問,并且所有接口擁有統(tǒng)一路徑前綴,則需要通過 Spring 層面來解決這個(gè)問題(context-path 是 web 容器層面的,如果配置它則會(huì)把靜態(tài)資源都包含進(jìn)去)。
如下接口示例:
# 3個(gè)靜態(tài)資源
http://localhost:8080/index.html
http://localhost:8080/home.js
http://localhost:8080/dog.png
# 3個(gè)統(tǒng)一前綴為 /api
http://localhost:8080/api/test/show
http://localhost:8080/api/test/display
http://localhost:8080/api/test/print
如上URL示例中,希望放在 springboot 根目錄 static 中的靜態(tài)資源能直接通過根路徑訪問。其他 Controller 接口的前綴 “/api” 可以在配置文件中自定義配置變更。
實(shí)現(xiàn)
實(shí)現(xiàn)方法很簡單,如下代碼和配置文件:
1、GlobalControllerPathPrefixConfiguration.java
package com.example.demospringbean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
?* 為 Controller 接口配置統(tǒng)一前綴
?*
?* @author shanhy
?* @date 2023-03-20 15:50
?*/
@Configuration
public class GlobalControllerPathPrefixConfiguration implements WebMvcConfigurer {
? ? @Value("${spring.controller.path-prefix:}")
? ? private String pathPrefix;
? ? @Override
? ? public void configurePathMatch(PathMatchConfigurer configurer) {
? ? ? ? configurer.addPathPrefix(pathPrefix, c -> c.isAnnotationPresent(RestController.class));
? ? }
}2、application.properties
spring.controller.path-prefix=/api
配置文件中參數(shù) spring.controller.path-prefix 也可以是多級(jí)路徑,例如 /api/demo。
3、TestController.java
/**
* 接口示例
*
* @author shanhy
* @date 2023-03-20 15:49
*/
@RestController
@RequestMapping("/test")
public class TestController {
@GetMapping("/show")
public String show(){
return "OK";
}
}最后將 dog.png 放在 springboot 項(xiàng)目的 static 目錄中用來測試。
驗(yàn)證
打開瀏覽器分別訪問如下路徑可以正常顯示結(jié)果,表示成功。
http://localhost:8080/dog.png
http://localhost:8080/api/test/show
到此這篇關(guān)于SpringBoot實(shí)現(xiàn)接口統(tǒng)一前綴的文章就介紹到這了,更多相關(guān)SpringBoot 接口統(tǒng)一前綴內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot security安全認(rèn)證登錄的實(shí)現(xiàn)方法
這篇文章主要介紹了SpringBoot security安全認(rèn)證登錄的實(shí)現(xiàn)方法,也就是使用默認(rèn)用戶和密碼登錄的操作方法,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
SpringData Repository Bean方法定義規(guī)范代碼實(shí)例
這篇文章主要介紹了SpringData Repository Bean方法定義規(guī)范代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
詳解Java中字符串緩沖區(qū)StringBuffer類的使用
StringBuffer與String類似,只不過StringBuffer在進(jìn)行字符串處理時(shí)不生成新的對(duì)象,下面我們就來詳解Java中字符串緩沖區(qū)StringBuffer類的使用:2016-06-06
Java實(shí)現(xiàn)矩陣加減乘除及轉(zhuǎn)制等運(yùn)算功能示例
這篇文章主要介紹了Java實(shí)現(xiàn)矩陣加減乘除及轉(zhuǎn)制等運(yùn)算功能,結(jié)合實(shí)例形式總結(jié)分析了java常見的矩陣運(yùn)算實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-01-01
Java Spring使用hutool的HttpRequest發(fā)送請(qǐng)求的幾種方式
文章介紹了Hutool庫中用于發(fā)送HTTP請(qǐng)求的工具,包括添加依賴、發(fā)送GET和POST請(qǐng)求的方法,以及GET請(qǐng)求的不同參數(shù)傳遞方式,感興趣的朋友跟隨小編一起看看吧2024-11-11
詳解使用Java原生代理實(shí)現(xiàn)AOP實(shí)例
本篇文章主要介紹了詳解使用Java原生代理實(shí)現(xiàn)AOP實(shí)例,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-01-01

