当前位置:

首页 > 编程开发 > SpringBoot多controller如何添加URL前缀

SpringBoot多controller如何添加URL前缀

前言在某些情况下,服务的controller中前缀是一致的,例如所有URL的前缀都为/context-path/api/v1,需要为某些URL添加统一的前缀。能想到的处理办法为修改服务的context-path,在context-path中添加api/v1,这样修改全局的前缀能够解决上面的问题,但存在弊端,如果URL存在多个前缀,例如有些URL需要前缀为api/v2,就无法区分了,如果服务中的一些静态资源不想添加api/v1,也无法区分。下面通过自定义注解的方式实现某些URL前缀的统一添加。一、配置文件内

本文目录
    前言

    在某些情况下,服务的controller中前缀是一致的,例如所有URL的前缀都为/context-path/api/v1,需要为某些URL添加统一的前缀。

    能想到的处理办法为修改服务的context-path,在context-path中添加api/v1,这样修改全局的前缀能够解决上面的问题,但存在弊端,如果URL存在多个前缀,例如有些URL需要前缀为api/v2,就无法区分了,如果服务中的一些静态资源不想添加api/v1,也无法区分。

    下面通过自定义注解的方式实现某些URL前缀的统一添加。

    一、配置文件内添加前缀配置

    如果需要多种前缀,添加多组配置,例如添加:api.prefix.v2=/api/v2

    ###############url前缀配置##################
    api.prefix.v1=/api/v1

    二、配置映射的实体

    @Data
    @Component
    @ConfigurationProperties(prefix = "api.prefix")
    public class ApiPrefix {
        private String v1;
    }

    三、自定义注解

    此注解功能与@RestController一致,对应api.prefix.v1的配置,如果有多组配置,定义多个注解即可

    @RestController
    @Documented
    @Target(ElementType.TYPE)
    @Retention(RetentionPolicy.RUNTIME)
    public @interface ApiV1RestController {
    }

    四、自定义PathMatch添加前缀

    添加一个配置类继承WebMvcConfigurer,重写configurePathMatch方法,为类上有ApiV1RestController注解的controller中的接口添加对应的前缀。

    @AutoConfiguration
    public class WebMvcConfig implements WebMvcConfigurer {
        @Autowired
        private ApiPrefix apiPrefix;
        @Override
        public void configurePathMatch(PathMatchConfigurer configurer) {
            configurer.addPathPrefix(apiPrefix.getV1(), c -> c.isAnnotationPresent(ApiV1RestController.class));
        }
    }

    五、测试

    需要在对应的controller上使用@ApiV1RestController注解代替@RestController注解

    @ApiV1RestController
    @RequestMapping("/test/apiv1")
    public class TestApiV1RestController {
        @GetMapping()
        public ResponseEntity get() {
            return new ResponseEntity();
        }
    }

    SpringBoot多controller如何添加URL前缀

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发
    相关文章 更多
    关于加密解密 Base64 and URL and Hex Encoding and Decoding
    关于加密解密 Base64 and URL and Hex Encoding and Decoding

    今天想换一下Discuz论坛的风格,结果下载风格文件后,发现内容竟然是被Base64加密过的——这操作有点意外。好在有朋友推荐了一个解密页面,顺手把核心代码提取了出来,下面直接贴出来。 代码本身是一个完整的Base64、URL和Hex编解码工具,包含前端UI和Ja vaScript实现。关键部分都集

    .NET获取URL查询参数技巧
    .NET获取URL查询参数技巧

    使用HttpUtility.ParseQueryString可在任意.NET项目中解析URL查询参数,适用于控制台应用;2.ASP.NETCore中推荐使用HttpContext.Request.Query获取IQueryCollection,支持大小写不敏感和多值参数;3.无System.Web依赖时可手动拆分查询字符串并解码;4..NETCore推荐使用QueryHelpers.ParseQuery进行安全解析与构建,避免编码问题;根据项目类型选择合适方法,注意处理URL编码与多值情况。

    详细指南:在Centos7中安装和使用wget
    详细指南:在Centos7中安装和使用wget

    在CentOS7系统上安装和使用wget的详细教程如下:步骤1:以root用户或具有sudo特权的用户身份登录到您的CentOS7系统。步骤2:安装wget在CentOS7系统中,可以使用以下命令安装wget:sudoyuminstallwget步骤3:使用wget下载文件要使用wget下载文件,请在终端中执行以下命令:wget[URL]将上述命令中的[URL]替换为您要下载的文件的URL地址。例如,如果要下载一个名为file.txt的文件,可以使用以下命令:wgetwget将从指定的URL下载文件,并将

    Java中如何使用URL函数进行URL操作
    Java中如何使用URL函数进行URL操作

    Java中的URL类是一个重要的工具,它允许我们进行常见的URL操作,如打开和读取网络资源,发送网络请求,等等。在本文中,我们将介绍如何使用Java中的URL类进行URL操作。URL类是Java中的一个标准类,用于处理URL。URL表示统一资源定位符,它是指向互联网上资源的字符串。URL类提供了许多用于对URL进行操作的方法。下面是一些常见的URL操作:1.

    springBoot项目常用目录有哪些
    springBoot项目常用目录有哪些

    springBoot项目常用目录springBoot项目的目录结构及名规范介绍基于SpringBoot开发时的目录结构及命名规范,通过介绍能够为你解决,在实际项目中如何规划目录结构?如何命名目录更规范?各个目录分别代表什么含义?等三个问题。目录说明servicex//项目名|-admin-ui//管理服务前端代码(一般将UI和SERVICE放到一个工程中,便于管理)|-servicex-auth//模块1|-servicex-common//模块2|-servicex-gateway//模块3|-serv

    URL中文参数乱码问题的PHP解决方案
    URL中文参数乱码问题的PHP解决方案

    URL参数乱码问题一直是开发者面临的一个棘手问题,尤其是在处理中文参数时更为显著。在PHP编程中,如果URL中的中文参数出现乱码,不仅会影响用户体验,还可能导致程序出现异常行为。本文将针对URL中文参数乱码问题提出解决方案,并给出具体的PHP代码示例。问题分析在HTTP请求中,URL中的参数是通过GET方法传递的。当参数中包含中文字符时,浏览器会将中文字符进

    如何使用PHP中的parse_url函数解析URL
    如何使用PHP中的parse_url函数解析URL

    URL是Web开发中一项基本的概念,它是指统一资源定位符,是用于定位Web上资源的地址。在PHP中,有一个内置函数parse_url可以用来解析URL,本文就来介绍如何使用这个函数。一、parse_url函数的基本概念PHP中的parse_url函数是用来解析一个URL并返回该URL的各个组成部分的函数。该函数支持的URL类型包括:http、ftp、goph

    优化PHP URL地址路径后缀的方法
    优化PHP URL地址路径后缀的方法

    PHP实现URL地址路径后缀清理技巧在Web开发过程中,URL地址路径后缀的清理是一个非常重要的步骤。清理URL地址路径后缀可以提高网站的SEO优化,提升用户体验,同时也有利于网站安全性。在PHP开发中,如何实现URL地址路径后缀的清理呢?下面将介绍一些实用的技巧和具体的代码示例。一、基本概念在URL中,地址路径后缀通常指的是URL中的文件类型或者标识符,例

    简化DZ首页链接URL:删除index.php
    简化DZ首页链接URL:删除index.php

    DZ首页URL精简化:去掉index.php,需要具体代码示例在使用Discuz!论坛系统时,我们常常需要对URL进行优化,其中去掉index.php是一个常见的操作。通过去掉index.php,可以让URL更加简洁美观,同时也有利于搜索引擎优化。下面我们来介绍如何实现DZ首页URL的精简化,去掉index.php部分的具体代码示例。首先,我们需要登录到Di

    解决NameResolutionError异常的方法
    解决NameResolutionError异常的方法

    报错的原因NameResolutionError(self.host,self,e)frome是由urllib3库中的异常类型,这个错误的原因是DNS解析失败,也就是说,试图解析的主机名或IP地址无法找到。这可能是由于输入的URL地址不正确,或者DNS服务器暂时不可用导致的。如何解决解决此错误的方法可能有以下几种:检查输入的URL地址是否正确,确保它是可访问的确保DNS服务器可用,您可以尝试在命令行中使用"ping"命令来测试DNS服务器是否可用尝试使用IP地址而不是主机名来访问网站如果是在代理环境下,检

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。