springboot controller 增加指定前缀的两种实现方法

目录
  • controller 增加指定前缀
    • 1、增加配置
    • 2、过滤拦截
  • springboot服务端口、项目前缀的配置
    • 在application.properties中配置

controller 增加指定前缀

1、增加配置

server.servlet.context-path: /api

这种是最常见的,加上这个配置后,所有的url,必须带上/api的前缀,才能访问到该url

2、过滤拦截

这种是加上/api也可以访问,不加/api也可以访问,适合项目重构修改的适合用

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服务端口、项目前缀的配置

在application.properties中配置

server.port: 8081
server.context-path: /demo

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 在SpringBoot项目中实现给所有请求加固定前缀

    目录 给所有请求加个固定前缀 知识小锦囊 配置文件读取(固定前缀) 1.配置文件所有固定前缀的都可以使用 2.SpringBoot实体类 3.使用方式 给所有请求加个固定前缀 在开发中,可能会遇到需要配置项目前缀的问题,虽然我们可以在Controller控制器方法中给所有请求加前缀,但是不仅比较麻烦,而且在某种环境下是没什么用处,形同虚设 接下来,教你在配置文章中只需短短一小行代码配置即可生效 知识小锦囊 在yml配置文件中加入配置: server.servlet.context-path: /

  • springboot如何为web层添加统一请求前缀

    目录 如何为web层添加统一请求前缀 配置文件方式 实现WebMvcConfigurer接口 spring web访问页面出现多余前缀和后缀情况 页面中出现hello.jsp 解决方法 如何为web层添加统一请求前缀 配置文件方式 application.properties全局配置文件配置: server.servlet.context-path=/api 实现WebMvcConfigurer接口 重写configurePathMatch()方法,代码: @Configuration publ

  • springboot 配置文件配置项前缀为0的数字特殊处理方式

    目录 配置文件配置项前缀为0的数字处理 问题 解决方法 源码类分析 yml配置文件中写以数字0开头的值 记一次springboot踩的坑 配置文件配置项前缀为0的数字处理 问题 spring boot yml配置文件中 ,配置前缀0的数字时,会被特殊处理,如下图配置04100 会当做八进制数处理成2112 解决方法 配置项两边加引号,这时会当做字符串处理 源码类分析 ConstructYamlInt 分析源码可知: 1.以0b开头的数字,会被当做二进制数处理 2.以0x开头的数字,会被当做十六进

  • SpringBoot使用前缀树过滤敏感词的方法实例

    目录 一.前缀树 二.敏感词过滤器 总结 一.前缀树 一般设计网站的时候,会有问题发布或者是内容发布的功能,这些功能的有一个很重要的点在于如何实现敏感词过滤,要不然可能会有不良信息的发布,或者发布的内容中有夹杂可能会有恶意功能的代码片段,敏感词过滤的基本的算法是前缀树算法,前缀树也就是字典树,通过前缀树匹配可以加快敏感词匹配的速度. 前缀树又称为Trie.字典树.查找树.主要特点是:查找效率高,但内存消耗大:主要应用于字符串检索.词频统计.字符串排序等. 到底什么是前缀树?前缀树的功能是如何实现

  • SpringBoot2.x实现给Controller的RequestMapping添加统一前缀

    目录 给Controller的RequestMapping添加统一前缀 总结一下 有几个方法 springboot项目添加全局前缀 spring的配置 spring boot的配置 给Controller的RequestMapping添加统一前缀 如何给Controller的RequestMapping添加统一前缀,比如"/api",为什么要添加统一访问前缀,其实是为了后面的接口的管理. 切记:约定与规范好过一切技术处理 ! 比如: 项目A必须所有访问接口URL必须增加 /api/pr

  • springboot controller 增加指定前缀的两种实现方法

    目录 controller 增加指定前缀 1.增加配置 2.过滤拦截 springboot服务端口.项目前缀的配置 在application.properties中配置 controller 增加指定前缀 1.增加配置 server.servlet.context-path: /api 这种是最常见的,加上这个配置后,所有的url,必须带上/api的前缀,才能访问到该url 2.过滤拦截 这种是加上/api也可以访问,不加/api也可以访问,适合项目重构修改的适合用 import org.apa

  • oracle增加表空间大小两种实现方法

    两种方法,一种是为表空间增加数据文件: 复制代码 代码如下: alter tablespace users add datafile '/opt/oracle/oradata/esop/so_data02.dbf' size 200M; 另一种方法是增加表空间原有数据文件尺寸: 复制代码 代码如下: alter database datafile '/opt/oracle/oradata/esop/so_data01.dbf' resize 200M;

  • pycharm中代码回滚到指定版本的两种实现方法(附带截图展示)

    第一种方法:采用git命令操作 1.例如仓库中有下面的代码(版本1) 2.现在继续编写代码,并且提交到远程仓库中(版本2) 3.回退到版本1中 git reflog:查看所有的历史版本 git reset --hard 版本号:回退到指定的版本 此时代码已经回退到指定的版本了 4.在操作的时候可能会遇到合并分支时版本冲突问题 工作中需要商量,我保留的是左边的代码 第二种方法:采用pycharm操作 1.首先在我们需要回滚的py文件的空白处右键点击,然后在弹出的选项卡中选择Local Histor

  • Springboot之修改启动端口的两种方式(小结)

    Springboot启动的时候,端口的设定默认是8080,这肯定是不行的,我们需要自己定义端口,Springboot提供了两种方式,第一种,我们可以通过application.yml配置文件配置,第二种,可以通过代码里面指定,在开发中,建议使用修改application.yml的方式来修改端口. 代码地址 #通过yml配置文件的方式指定端口地址 https://gitee.com/yellowcong/springboot-demo/tree/master/springboot-demo2 #硬

  • Springboot+rabbitmq实现延时队列的两种方式

    什么是延时队列,延时队列应用于什么场景 延时队列顾名思义,即放置在该队列里面的消息是不需要立即消费的,而是等待一段时间之后取出消费. 那么,为什么需要延迟消费呢?我们来看以下的场景 网上商城下订单后30分钟后没有完成支付,取消订单(如:淘宝.去哪儿网) 系统创建了预约之后,需要在预约时间到达前一小时提醒被预约的双方参会 系统中的业务失败之后,需要重试 这些场景都非常常见,我们可以思考,比如第二个需求,系统创建了预约之后,需要在预约时间到达前一小时提醒被预约的双方参会.那么一天之中肯定是会有很多个

  • SpringBoot分离打Jar包的两种配置方式

    目录 方式一:基于maven-jar-plugin 方式二:基于spring-boot-maven-plugin 附录:参考链接 SpringBoot分离打Jar包的两种方式 方式一:基于maven-jar-plugin 此方式基于这个小伙伴的配置改的:https://www.jb51.net/article/188606.htm 注意 这种方式打包出来的Jar基于插件提供的类加载器启动:org.springframework.boot.loader.PropertiesLauncher 所有依

  • SpringBoot EasyPoi动态导入导出的两种方式实现方法详解

    目录 前言 一.基于@Excel的 isColumnHidden 属性 1.1 实现原理 1.2 实现步骤 1.3 实现效果 二. 基于List< ExcelExportEntity > 的导出 实现效果 总结 前言 一开始为了图方便,使用的是土方法,即创建多个不同的实体类,每个实体类对应不同的列.这样虽说能实现,但实在不想多复制实体类,把代码堆的和shi山一样.于是查看官方文档,里面确实提供了更加优雅的实现方式.废话不多说,开整. 一.基于@Excel的 isColumnHidden 属性

  • js删除Array数组中指定元素的两种方法

    本节内容: js删除Array数组中指定元素 方法一, /* * 方法:Array.remove(dx) 通过遍历,重构数组 * 功能:删除数组元素. * 参数:dx删除元素的下标. */ Array.prototype.remove=function(dx) { if(isNaN(dx)||dx>this.length){return false;} for(var i=0,n=0;i<this.length;i++) { if(this[i]!=this[dx]) { this[n++]=

  • iOS开发之image图片压缩及压缩成指定大小的两种方法

    ///压缩图片 + (NSData *)imageCompressToData:(UIImage *)image{ NSData *data=UIImageJPEGRepresentation(image, 1.0); if (data.length>300*1024) { if (data.length>1024*1024) {//1M以及以上 data=UIImageJPEGRepresentation(image, 0.1); }else if (data.length>512*1

  • SpringBoot限制文件或图片上传大小的两种配置方法

    今天做图片上传时候,报了如下错:服务运行异常,Could not parse multipart servlet request; nested exception is java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field file exceeds its maximum permitted

随机推荐