精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

基于Spring Boot給所有Controller接口添加統一前綴的五種方式

開發 前端
在Spring應用程序中,負責處理Web請求的主要組件是DispatcherServlet。通過自定義這個組件,我們可以相當程度地控制請求的路由方式。

環境:Spring Boot3.2.5

1. 簡介

在Spring Boot應用程序中,每個控制器都可以有自己的URL映射。這使得單個應用程序能夠在多個位置提供Web接口。例如,我們可以將API接口分組為邏輯分組,如內部和外部。

然而,有時我們可能希望將所有接口置于一個共同的前綴之下。在本篇文章中,我將深入探討為所有Spring Boot Controller使用共同前綴的不同方法。

2. 基于Servlet上下文

在Spring應用程序中,負責處理Web請求的主要組件是DispatcherServlet。通過自定義這個組件,我們可以相當程度地控制請求的路由方式。

接下來先來看看兩種自定義DispatcherServlet的方法,這樣我們的所有應用程序端點都將可以在一個共同的URL前綴下訪問。

2.1 配置DispatcherServlet Bean

@Configuration
public class DispatcherServletCustomConfiguration {


  @Bean
  public DispatcherServlet dispatcherServlet() {
    return new DispatcherServlet() ;
  }
  @Bean
  public ServletRegistrationBean dispatcherServletRegistration() {
    ServletRegistrationBean registration = new ServletRegistrationBean(
      dispatcherServlet(), "/api/") ;
    registration.setName("dispatcherServlet") ;
    return registration ;
  }
}

在這里,我們創建了一個封裝 DispatcherServlet Bean 的 ServletRegistrationBean。 設置了該Servlet的訪問前綴路徑為:/api/。這意味著我們的所有接口都必須通過該基礎 URL 前綴進行訪問。

2.2 基于配置屬性

我們也可以通過使用應用程序屬性來達到同樣的效果。在 Spring Boot 2.x 之后的版本中,我們可以在 application.yml文件中添加以下內容:

server:
  servlet:
    contextPath: /api

但在之前的版本則需要通過如下方式配置

server:
  contextPath: /api

在2.1中我們通過編程的方式設置了統一的前綴,其實我們還可以通過如下屬性配置

spring:
  mvc:
    servlet:
      path: /api

這種方式通過是給DispatcherServlet配置路徑訪問前綴。

基于Servlet上下文方式的優缺點:

上面介紹的兩種方法的主要優點也是它們的主要缺點:它們會影響應用程序中的每個接口。對于一些應用程序來說,這可能完全沒問題。然而,一些應用程序可能需要使用標準的端點映射來與第三方服務進行交互——例如OAuth交換。在這些情況下,這樣的全局解決方案可能并不合適。

3. 基于注解

為 Spring 應用程序中的所有控制器添加前綴的另一種方法是使用注解。下面,我將介紹兩種不同的方法。

3.1 使用SpEL

使用 Spring Expression Language (SpEL) 和標準 @RequestMapping 注解。使用這種方法,我們只需在每個控制器中添加一個需要前綴的屬性,如下示例:

@Controller
@RequestMapping(path = "${pack.app.apiPrefix}/users")
public class UserController {
}

配置文件中我們只需要配置上pack.app.apiPrefix屬性即可。

3.2 自定義注解

這種方式需要我們自定義注解,這完全可以仿照@GetMapping、@PostMapping等這類注解來實現即可,如下示例:

@RequestMapping(value = "/api/")
public @interface PackMapping {
}
// 使用
@RestController
@PackMapping
public class SomeController {
  @RequestMapping("/users")
  public String getAll(){
    return "..." ;
  }
}

基于注解的優缺點:

這兩種方法解決了前一種方法的主要問題:它們都能對哪些控制器獲得前綴進行細粒度控制。我們可以只對特定控制器應用注解,而不是影響應用程序中的所有接口。

4. 服務端轉發

使用服務器端轉發。與重定向不同,轉發不涉及向客戶端發送響應。這意味著我們的應用程序可以在接口之間傳遞請求,而不會影響客戶端。

下面編寫一個簡單的控制器,其中包含兩個接口:

@RestController
public class EndpointController {
  @GetMapping("/endpoint1")
  public String endpoint1() {
      return "Hello from endpoint 1";
  }
  @GetMapping("/endpoint2")
  public String endpoint2() {
      return "Hello from endpoint 2";
  }
}

接下來,我們根據所需的前綴創建一個新控制器:

@Controller
@RequestMapping("/api/endpoint")
public class ApiPrefixController {
  @GetMapping
  public ModelAndView route(ModelMap model, HttpServletRequest request) {
    String action = request.getHeader("X-ACTION");
    return switch (action) {
      case null -> new ModelAndView("forward:/error") ;
      case "xxx" -> new ModelAndView("forward:/endpoint1", model) ;
      case "zzz" -> new ModelAndView("forward:/endpoint2", model) ;
      default -> new ModelAndView("forward:/home") ;
    } ;
  }
}

這個控制器有一個接口,它充當路由器。將原始請求轉發到我們的另外兩個端點之一。

5. Nginx反向代理

通過Nginx配置反向代理來管理統一的前綴

server {
  listen              80;
  server_name         default;


  location /api/ {
    proxy_set_header Host $host ;
    proxy_set_header  X-Real-IP        $remote_addr ;
    proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for ;
    proxy_set_header X-NginX-Proxy true ;


    rewrite ^/api/(.*)$ /$1 break ;
    proxy_pass http://www.pack.com ;
  }
}

這種方式最為簡單,不對我們的業務代碼做任何的調整。

責任編輯:武曉燕 來源: Spring全家桶實戰案例源碼
相關推薦

2025-06-30 01:45:00

2025-02-12 08:47:07

SpringAPI接口

2022-08-18 09:38:02

Spring跨域

2025-06-06 08:28:56

2024-08-01 09:10:03

2025-02-03 09:00:00

API接口性能

2011-11-25 10:25:27

SpringJava

2011-02-28 13:51:30

Spring事物配置

2009-06-19 18:26:38

Spring事務配置

2025-10-27 01:00:00

2025-02-13 07:45:26

APISpringHTTP

2021-12-31 13:40:43

Spring Boot熱部署Java

2021-04-30 07:34:01

Spring BootController項目

2024-10-18 08:00:00

SpringBoot框架開發

2011-06-03 11:53:06

Spring接口

2025-06-04 02:10:00

2023-09-08 08:23:29

Servlet程序MVC

2025-08-08 01:55:00

SpringJSON日期

2020-09-23 16:31:38

C++C++11啟動線程

2024-10-12 08:18:21

Spring接口組件
點贊
收藏

51CTO技術棧公眾號

欧美日韩综合视频网址| 国产综合网站| 欧美日韩国产一级片| 中文字幕在线观看一区二区三区| h片在线免费看| 在线视频观看日韩| 一区二区三欧美| 三级黄色片免费观看| 激情黄产视频在线免费观看| 欧美激情一区二区三区全黄| 91嫩草免费看| 少妇高潮av久久久久久| 亚洲精品91| 日韩精品在线看| а 天堂 在线| 成人欧美大片| 亚洲资源中文字幕| 日韩欧美精品一区二区| 亚洲精品字幕在线观看| 日韩av一区二| 91国内免费在线视频| 91制片厂在线| 免费成人高清在线视频theav| 91精品在线一区二区| 国产无套粉嫩白浆内谢的出处| 深夜国产在线播放| 中文字幕巨乱亚洲| 久久精品美女| 国产小视频免费观看| 91国偷自产一区二区三区观看| 国产精品高潮呻吟久久av野狼 | 国产成人精品免费在线| 91伊人久久大香线蕉| 中文字幕av一区二区三区| 97视频在线观看亚洲| 国产精品18在线| 国产va免费精品观看精品视频| 亚洲精品在线电影| 人妻巨大乳一二三区| 欧美爱爱视频| 91搞黄在线观看| 日本精品一区二区三区四区| heyzo在线播放| 国产精品亚洲四区在线观看| 成人四虎影院| 亚洲va国产va欧美va观看| 一本二本三本亚洲码| 高清国产福利在线观看| 久久先锋影音av| 国产亚洲精品美女久久久m| www香蕉视频| 国产精品1024久久| 91亚洲va在线va天堂va国| 亚洲天堂视频在线| 麻豆成人91精品二区三区| 国产精品三级在线| 亚洲天堂视频网| 久久国产三级精品| 国产欧洲精品视频| 97国产精品久久久| 国产一区二区三区av电影| 国产一区二中文字幕在线看| 91亚洲欧美激情| 国模一区二区三区白浆| 成人黄色av网站| 国产裸体永久免费无遮挡| 精品亚洲aⅴ乱码一区二区三区| 国产日韩精品电影| 国产色在线视频| 国产高清成人在线| 国产精品视频入口| 黄色福利在线观看| 99热这里都是精品| 日韩欧美一区二区视频在线播放| 国产午夜在线视频| 国产精品久久久久婷婷| 永久免费在线看片视频| 在线免费观看污| 五月天精品一区二区三区| 99精品人妻少妇一区二区| 91精品论坛| 在线观看一区二区视频| 九九九九九国产| 国产免费区一区二区三视频免费 | 亚洲一级黄色av| 欧美一区二区三区粗大| 91精品国产自产在线观看永久∴| 欧美成年人视频网站| 国产网友自拍视频| 美女久久一区| 91在线色戒在线| 亚洲精品911| 26uuu色噜噜精品一区二区| 日韩aⅴ视频一区二区三区| 黄色动漫在线| 欧美性猛交xxxx黑人| 91亚洲精品久久久蜜桃借种| av成人综合| 国产一区二区三区在线观看网站 | 免费资源在线观看| 国产精品第13页| 国产日韩av网站| 91久久久久久白丝白浆欲热蜜臀| 欧美成人性福生活免费看| 大又大又粗又硬又爽少妇毛片| 国产精品88久久久久久| 97精品国产aⅴ7777| 亚洲在线观看av| av午夜一区麻豆| 91免费网站视频| 校园春色亚洲| 欧美成人三级电影在线| 奇米网一区二区| 亚洲一区免费| wwwxx欧美| 自拍视频在线| 色婷婷久久综合| 韩国三级在线看| 久久精品国产99久久| 26uuu另类亚洲欧美日本一| 国产男男gay网站| 国产欧美日韩综合精品一区二区| aa视频在线播放| 精品国产18久久久久久二百| 中文字幕久久亚洲| 国产成人综合欧美精品久久| 福利一区二区在线| 黄色a级在线观看| 成人全视频在线观看在线播放高清| 日韩h在线观看| 久久久久噜噜噜亚洲熟女综合| 蜜桃视频在线观看一区二区| 欧美极品视频一区二区三区| av今日在线| 日韩精品一区二区三区视频播放 | 欧美男女性生活在线直播观看| 日韩av一二区| 一区二区国产精品| 国产三区二区一区久久| 青春草免费在线视频| 欧美一级久久久| 亚洲天堂网av在线| 久久超碰97中文字幕| 亚洲精品乱码视频| 播放一区二区| 亚洲午夜色婷婷在线| 无码人妻精品一区二区三区9厂| 91在线国内视频| 天天夜碰日日摸日日澡性色av| japanese色系久久精品| 欧美精品www| 亚洲国产精品18久久久久久| 玉足女爽爽91| 国产视频精品视频| 亚洲精品女人| 鲁丝片一区二区三区| 人人草在线视频| 国产婷婷成人久久av免费高清 | 欧美人与性动xxxx| 国产美女久久久久久| 国产最新精品免费| 欧美狂野激情性xxxx在线观| 精品精品视频| 欧美激情国产精品| 天堂av在线免费| 色综合中文字幕国产| 91成年人网站| 免播放器亚洲一区| 91精品一区二区三区四区| 免费观看在线一区二区三区| 久久久久久国产精品三级玉女聊斋| 黄色福利在线观看| 色天使色偷偷av一区二区| 男人的天堂官网| 国产自产视频一区二区三区| 少妇大叫太大太粗太爽了a片小说| 国产一区福利| 国产精品青青在线观看爽香蕉| 国产在线二区| 亚洲国产精彩中文乱码av在线播放 | 亚洲三区在线播放| 欧美艳星brazzers| www.av成人| 99久久婷婷国产综合精品电影 | 国产麻豆精品theporn| 免费高清一区二区三区| 国产精品探花在线观看| 91丝袜美腿美女视频网站| zzzwww在线看片免费| 国产亚洲欧美日韩精品| av男人天堂av| 狠狠躁夜夜躁人人爽天天天天97| 欧日韩不卡视频| 丰满白嫩尤物一区二区| 国产精品亚洲二区在线观看| 国产精品久久久久久影院8一贰佰 国产精品久久久久久麻豆一区软件 | 福利小视频在线| 国产亚洲精品久久久优势| 国产三级自拍视频| 91国在线观看| 日本少妇性高潮| 中文字幕中文字幕一区二区| 波多野结衣加勒比| 狠狠色狠狠色综合| 国产无套内射久久久国产| 亚洲精品国产成人影院| 欧美三级网色| 久久视频在线观看| 成人网在线免费看| 性欧美gay| 韩国三级日本三级少妇99| 欧美日韩欧美| 亚洲色图偷窥自拍| 日韩一级在线播放| 欧美一级高清大全免费观看| 丰满人妻一区二区三区四区| 亚洲大片精品永久免费| 一区视频免费观看| 国产精品无码永久免费888| 黑丝av在线播放| 国产福利一区二区三区视频| 久草综合在线观看| 亚洲一区二区三区高清不卡| 欧美做受777cos| 成人综合专区| 日本高清不卡三区| 蜜臀91精品国产高清在线观看| 国产福利久久精品| 警花av一区二区三区| 国产日韩av在线| 九色成人搞黄网站| 国产成人激情视频| 成人午夜视屏| 欧洲成人午夜免费大片| 19禁羞羞电影院在线观看| 欧美精品videosex性欧美| yellow91字幕网在线| 日韩一区二区久久久| seseavlu视频在线| 尤物yw午夜国产精品视频明星| 免费一级在线观看| 亚洲人成电影在线播放| 深夜福利视频在线免费观看| 亚洲精品v欧美精品v日韩精品| 蜜桃在线一区二区| 亚洲国产精品国自产拍av秋霞| 欧美 日韩 国产 成人 在线| 精品国产1区二区| 亚洲av无码乱码国产麻豆| 精品电影一区二区三区| 亚洲产国偷v产偷v自拍涩爱| 欧美mv日韩mv| 亚洲第九十九页| 亚洲福利在线看| 天堂在线观看免费视频| 日韩电影在线观看中文字幕| 四虎精品成人免费网站| 亚洲精品日韩久久久| 美国成人毛片| 六月婷婷综合网| 日韩精品中文字幕久久臀| 精品一二三区视频| 日韩一中文字幕| a毛片在线观看| 久久久久在线观看| 日韩理论视频| 国产精品国内视频| 亚洲资源在线| 国产精品对白刺激久久久| 久久久亚洲欧洲日产| 欧美日韩一区二区视频在线| 清纯唯美综合亚洲| 强开小嫩苞一区二区三区网站| 国内自拍一区| www.日本在线播放| 久久激情久久| www.色就是色.com| 成人美女视频在线观看| 受虐m奴xxx在线观看| 中文字幕亚洲综合久久菠萝蜜| 91成人福利视频| 欧美日韩中文字幕日韩欧美| 综合久久中文字幕| 日韩欧美国产三级电影视频| 三级无遮挡在线观看| 久久精品视频va| 热三久草你在线| 成人久久18免费网站图片| 国产精品久久久久久久久久白浆| 青青影院一区二区三区四区| 亚洲欧美偷拍自拍| 精品一区二区中文字幕| 国内成人精品2018免费看| 加勒比精品视频| 中文字幕在线不卡视频| 亚洲天堂日韩av| 欧美日韩精品福利| 天堂在线中文资源| 久久福利视频网| 暖暖成人免费视频| av免费精品一区二区三区| 欧洲毛片在线视频免费观看| 成人性做爰片免费视频| 久久美女性网| 一二三级黄色片| 国产日韩高清在线| 免费日韩一级片| 欧美一级在线视频| 成人免费在线视频网| 久久69精品久久久久久久电影好 | 国产亚洲精品美女久久久m| 天天影视欧美综合在线观看| 久久精品免费一区二区| 盗摄精品av一区二区三区| 日韩欧美视频免费观看| 日韩欧美中文免费| 免费看国产片在线观看| 久久久国产精品视频| 日本综合字幕| 久久66热这里只有精品| 欧美午夜不卡| 一区二区久久精品| 国产精品视频在线看| 黄色片网站在线免费观看| 精品国产91久久久久久久妲己| 国产美女福利在线| 国产精品一区二区久久| 国产一区网站| 亚洲精品无码久久久久久| 高清不卡在线观看av| 99久久久免费精品| 欧美日韩在线播放三区| 国产视频在线看| 国产精品9999| 国产精品一区2区3区| 成人三级视频在线播放 | 亚洲av无一区二区三区| 欧美色中文字幕| av网站在线播放| 国产精品入口尤物| 999久久久免费精品国产| 亚洲污视频在线观看| 欧美国产亚洲另类动漫| 少妇一级淫片日本| 中文综合在线观看| 国产一区影院| 伊人情人网综合| 精品一区二区免费看| 小向美奈子av| 91精品国产一区二区三区香蕉| 欧美另类极品| 91久热免费在线视频| 综合久久十次| 色悠悠在线视频| 性久久久久久久久久久久| 天堂在线观看免费视频| 欧美壮男野外gaytube| 伊人久久大香线蕉无限次| 国产天堂在线播放| 欧美高清在线精品一区| 97超视频在线观看| 欧美—级高清免费播放| 免费日韩一区二区三区| 午夜精品久久久久久久无码| 久久久久久久久久久黄色| 懂色av蜜臀av粉嫩av喷吹| 操日韩av在线电影| 久9re热视频这里只有精品| 播放灌醉水嫩大学生国内精品| 国产婷婷精品av在线| 国产尤物在线观看| 欧美激情视频网站| 香蕉一区二区| 五月婷婷六月合| 亚洲精品va在线观看| 午夜福利一区二区三区| 国产成人精品电影久久久| 国产高清久久| 日本japanese极品少妇| 欧美亚洲一区二区在线观看| 黄色一级大片在线免费看产| 国产精品免费区二区三区观看| 久久99伊人| 在线观看美女av| 日韩精品一区二区三区在线观看 | 色婷婷综合久久久中文字幕| jizz在线免费观看| 国产精品区免费视频| 日韩精品久久久久久| 少妇高潮在线观看| 亚洲国产精品久久久| av成人在线观看| 日韩a级在线观看| 欧美国产精品中文字幕| xxxx18国产| 国产精品69av| 激情综合视频| 欧美日韩中文字幕视频| 欧美成人精品3d动漫h| 巨胸喷奶水www久久久免费动漫|