当前位置: 首页 > news >正文

Java:SpringBoot给Controller添加统一路由前缀

网上的文章五花八门,不写SpringBoot的版本号,导致代码拿来主义不好使了。

本文采用的版本

SpringBoot 2.7.7
Java 1.8

目录

    • 1、默认访问路径
    • 2、整个项目增加路由前缀
    • 3、通过注解方式增加路由前缀
    • 4、按照目录结构添加前缀
    • 参考文章

1、默认访问路径

package com.example.demo.controller.api;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/api")
public class AppIndexController {@GetMapping("/index")public String index() {return "app";}
}

访问地址:http://localhost:8080/api/index

2、整个项目增加路由前缀

application.yml

server:servlet:context-path: /prefix

访问地址:http://localhost:8080/prefix/api/index

注意:该方案会将所有的路由都增加一个前缀

3、通过注解方式增加路由前缀

注解

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 "";
}

配置

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 {@Overridepublic void configurePathMatch(PathMatchConfigurer configurer) {configurer.addPathPrefix("/api", c -> c.isAnnotationPresent(ApiRestController.class));}}

使用注解

package com.example.demo.controller.api;import com.example.demo.annotation.ApiRestController;
import org.springframework.web.bind.annotation.GetMapping;@ApiRestController
// @RestController
// @RequestMapping("/api")
public class AppIndexController {@GetMapping("/index")public String index() {return "app";}
}

访问地址:http://localhost:8080/api/index

4、按照目录结构添加前缀

没有成功,可能是版本的问题

Neither PathPatterns nor String patterns condition

参考文章

  • SpringBoot2.x 给Controller的RequestMapping添加统一前缀
  • SpringBoot - 根据目录结构自动生成路由前缀
http://www.lryc.cn/news/39631.html

相关文章:

  • Java 基于 JAVE 库 实现 视频转音频的批量转换
  • Spring容器——基于XML注入
  • 设计模式(二十一)----行为型模式之状态模式
  • 一分钟理解 AP(Affinity Propagation) 亲和⼒传播算法
  • 使用mybatis的映射文件操作存储过程
  • 世界上最完美的两个软件,太厉害了!
  • 教你成为比卡卡西还牛逼的全能忍者,全拷贝与分割函数
  • 【LeetCode】剑指 Offer(24)
  • javaEE 初阶 — CSS 元素的显示模式与盒模型
  • 新星计划-我为什么要写博客?写博客的意义是什么
  • 嵌入式学习笔记——STM32的USART收发字符串及串口中断
  • 数据分析之Pandas(1)
  • 17、江科大stm32视频学习笔记——USART串口协议和USART串口外设
  • leetcode:有效地括号
  • 四等分list
  • php连接sqlserver数据库
  • The 2019 China Collegiate Programming Contest Harbin Site F. Fixing Banners
  • Maven的下载和配置
  • 服务高并发、高性能、高可用实现方案
  • uniCloud在线升级APP配置教程
  • idea常用的快捷键
  • 全志V85x硬件设计大赛作品精选第一期,快来Pick你心目中的最佳方案
  • 博客系统(界面设计)
  • 素材要VIP咋整?看python大展神通
  • [ vulnhub靶机通关篇 ] 渗透测试综合靶场 DC-1 通关详解 (附靶机搭建教程)
  • 软件测试文档编写步骤
  • 重新认识下网页水印
  • Unity脚本练习
  • 二十分钟带你了解JVM性能调优与实战进阶
  • 对比应用层和内核层区别