SpringBoot2为接口统一加url前缀的实现示例

 更新时间:2026年03月08日 09:19:56   作者:小恒恒  
本文主要介绍了SpringBoot2为接口统一加url前缀的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

背景

有时候会面临前后端都放在一起的情况,这个时候我们就不好去使用配置中的 server.servlet.context-path ,经过一番查找,发现使用注解还是挺方便的。

解决办法

定义注解

package com.example.demo.annotation;

import org.springframework.core.annotation.AliasFor;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RestController;

import java.lang.annotation.*;

/**
 * controller层统一使用该注解
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@RestController
public @interface ApiRestController {
    /**
     * Alias for {@link Controller#value}.
     */
    @AliasFor(annotation = Controller.class)
    String value() default "";
}

实现WebMvcConfigurer配置路径前缀

package com.example.demo.config;


import com.example.demo.annotation.ApiRestController;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * 配置统一的后台接口访问路径的前缀
 */
@Configuration
public class CustomWebMvcConfig implements WebMvcConfigurer {

    @Override
    public void configurePathMatch(PathMatchConfigurer configurer) {
        configurer
                .addPathPrefix("/api", c -> c.isAnnotationPresent(ApiRestController.class));
    }

}

在Controller类上使用注解

package com.example.demo.controller.api;

import com.example.demo.annotation.ApiRestController;
import org.springframework.web.bind.annotation.GetMapping;

@ApiRestController
@RequestMapping("/token")
public class UserTokenController {

    /**
     * 获取 user token
     */
    @GetMapping("/getUserToken")
    public ResponseBase getUserToken(HttpServletRequest request, HttpServletResponse response){
    }
}

到此这篇关于SpringBoot2为接口统一加url前缀的实现示例的文章就介绍到这了,更多相关SpringBoot2 接口统一加url前缀内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解MyBatis直接执行SQL查询及数据批量插入

    详解MyBatis直接执行SQL查询及数据批量插入

    这篇文章主要介绍了MyBatis直接执行SQL查询及数据批量插入的相关知识,需要的朋友一起学习吧
    2016-01-01
  • util.Date与sql.Date的相互转换过程

    util.Date与sql.Date的相互转换过程

    本文介绍了Java中两个常用日期类的区别和相互转换方法,包括java.util.Date和java.sql.Date,并展示了如何使用SimpleDateFormat进行日期格式化
    2026-01-01
  • 更改idea的JDK版本超简单便捷方法

    更改idea的JDK版本超简单便捷方法

    idea很多地方都设置了jdk版本,不同模块的jdk版本也可能不一样,下面这篇文章主要给大家介绍了关于更改idea的JDK版本的超简单便捷方法,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • 关于Java集合框架的总结

    关于Java集合框架的总结

    下面小编就为大家带来一篇关于Java集合框架的总结。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • Mybatis打印替换占位符后的完整Sql教程

    Mybatis打印替换占位符后的完整Sql教程

    这篇文章主要介绍了Mybatis打印替换占位符后的完整Sql教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • java常用Lambda表达式使用场景源码示例

    java常用Lambda表达式使用场景源码示例

    这篇文章主要为大家介绍了java常用Lambda表达式使用场景源码示例及应用解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-03-03
  • Java复习之集合框架总结

    Java复习之集合框架总结

    本篇文章主要介绍了Java复习之集合框架总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • 解决线程异常WAITING(parking)问题

    解决线程异常WAITING(parking)问题

    文章总结:在项目中线程数量持续增长无法回收,导致服务器卡死和内存不足,通过分析发现是由于自定义线程池未执行shutdown()关闭导致线程泄漏
    2024-11-11
  • Java File类提供的方法与操作

    Java File类提供的方法与操作

    Java使用File类来表示计算机系统磁盘文件的对象类型。File中提供了大量的方法,可以对文件进行增加、删除、修改、重命名等常规操作。File类的对象会存储文件自身的信息,例如文件在系统中的存储目录、文件大小、文件读写权限等
    2023-03-03
  • JSON复杂数据处理之Json树形结构数据转Java对象并存储到数据库的实现

    JSON复杂数据处理之Json树形结构数据转Java对象并存储到数据库的实现

    这篇文章主要介绍了JSON复杂数据处理之Json树形结构数据转Java对象并存储到数据库的实现的相关资料,需要的朋友可以参考下
    2016-03-03

最新评论