springboot controller 增加指定前綴的兩種實(shí)現(xiàn)方法
controller 增加指定前綴
1、增加配置
server.servlet.context-path: /api
這種是最常見的,加上這個(gè)配置后,所有的url,必須帶上/api的前綴,才能訪問(wèn)到該url
2、過(guò)濾攔截
這種是加上/api也可以訪問(wèn),不加/api也可以訪問(wèn),適合項(xiàng)目重構(gòu)修改的適合用
import org.apache.commons.lang.StringUtils;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
@Configuration
@Order(1)
@WebFilter(filterName = "urlFilter", urlPatterns = "/api/*")
public class UrlFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;
String servletPath = httpRequest.getServletPath();
if (StringUtils.isNotBlank(servletPath) && servletPath.startsWith("/api")) {
String newPath = servletPath.substring(4);
request.getRequestDispatcher(newPath).forward(request, response);
} else {
chain.doFilter(request, response);
}
}
@Override
public void destroy() {
}
}
springboot服務(wù)端口、項(xiàng)目前綴的配置
在application.properties中配置
server.port: 8081 server.context-path: /demo
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Spring?Boot將@RestController誤用于視圖跳轉(zhuǎn)問(wèn)題解決
- springboot項(xiàng)目完整后端請(qǐng)求Controller層優(yōu)雅處理
- 解析Spring中@Controller@Service等線程安全問(wèn)題
- spring?controller層引用service報(bào)空指針異常nullpointExceptio問(wèn)題
- SpringMVC中事務(wù)是否可以加在Controller層的問(wèn)題
- SpringMVC實(shí)現(xiàn)Controller的三種方式總結(jié)
- Spring管理Controller可行性原理示例分析
相關(guān)文章
關(guān)于Java Interface接口的簡(jiǎn)單練習(xí)題
這篇文章主要給大家分享的是關(guān)于Java Interface接口的簡(jiǎn)單練習(xí)題,難度不算大,但是要有一個(gè)清晰的邏輯建立接口和鏈接Java類。下面來(lái)看看文章的詳細(xì)介紹吧,需要的朋友可以參考一下2021-11-11
Java實(shí)現(xiàn)添加頁(yè)碼到PDF文檔
頁(yè)碼可以清楚了解總頁(yè)數(shù)、定位頁(yè)數(shù)快速尋找自己所要的文段、打印時(shí)不會(huì)分不清頭中尾。今天這篇文章就將介紹如何通過(guò)Java代碼,以編程的方式將添加頁(yè)碼到PDF文檔,需要的可以參考一下2023-04-04
Mybatis foreach標(biāo)簽使用不當(dāng)導(dǎo)致異常的原因淺析
這篇文章主要介紹了Mybatis foreach標(biāo)簽使用不當(dāng)導(dǎo)致異常的原因探究,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-12-12
java?poi之XWPFDocument如何讀取word內(nèi)容并創(chuàng)建新的word
這篇文章主要介紹了java?poi之XWPFDocument如何讀取word內(nèi)容并創(chuàng)建新的word問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04
SpringBoot基于Disruptor實(shí)現(xiàn)高效的消息隊(duì)列?
Disruptor是一個(gè)開源的Java框架,它被設(shè)計(jì)用于在生產(chǎn)者-消費(fèi)者問(wèn)題上獲得盡量高的吞吐量和盡量低的延遲,本文主要介紹了SpringBoot基于Disruptor實(shí)現(xiàn)高效的消息隊(duì)列?,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02
使用Lombok導(dǎo)致打印的tostring中缺少父類的屬性問(wèn)題
使用Lombok時(shí),若發(fā)現(xiàn)@Data注解的@ToString不包含父類屬性,可通過(guò)添加@ToString(callSuper=true)解決,此方法確保在生成toString()時(shí)包括父類的屬性,有效解決只打印子類屬性的問(wèn)題,這種做法對(duì)于需要完整信息展示的場(chǎng)景尤為重要2024-11-11

