Springboot 2.x中server.servlet.context-path的运用详解

 更新时间:2021年01月12日 10:54:12   作者:半城风花半城雨  
这篇文章主要介绍了Springboot 2.x中server.servlet.context-path的运用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

今天在开发项目的时候遇到了请求不通API的问题,最开始以为是server.servlet.context-path配置导致的问题,最终发现是由于AWS端口未开放/监听导致的connection refuse。虽然如此,仍然想记录一下server.servlet.context-path的作用。

功能

这个配置能够设置项目中的所有API的上下文路径(URL的一部分),与@RequestMapping有异曲同工之妙。

我们知道,@RequestMapping能够在API方法层级声明,同时能够在Controller的类层级声明,为什么能够在多层级声明呢?大家很容易想到,为了使API url的语义性,遵从REST标准的API是非常棒的,同一个Controller下的URL前缀相同能够非常明确的表达语义与关联关系。

那么,如果我们有多个项目/微服务呢?也应该做到这一点,只不过是以更大的层级方式在应用。server.servlet.context-path能够以一个project为单位配置默认的URL上下文路径,保持设计的一致性是非常合适的做法。

用法

如果我们没有添加任何配置,则为默认值“/”,
我们可以在Springboot的properties下配置:

server.servlet.context-path=/api/demo

如果使用的是yml配置方式,则为:

server:
 servlet:
 context-path:/api/demo

那么我们调用一个地址本来为 [ip地址]:[端口号]/books 的API,现在变成了 [ip地址]:[端口号]/api/demo/books

注意!!! 配置上有一个小坑,如果你使用的是Springboot 1.x版本,我们需要改为使用 server.context-path 来配置路径。

优点

  • 我们能够通过此配置在更大的层级上做统一的路径配置,体现了RESTFul的语义化API URL的优势。
  • 便于配置Ngnix的请求分发

SpringBoot2.X配置server.context-path不生效的解决

之前看视频教程的时候发现教程上的配置是这样的

 server.context-path=/IMooc

然后我按照这样配置发现重启了并未生效

Tomcat started on port(s): 8081 (http) with context path ''

后来百度发现原来1.X版本这样配置是可以的,但是2.X版本需要如下配置才能生效

server.servlet.context-path=/Daojihe
Tomcat started on port(s): 8081 (http) with context path '/Daojihe'

到此这篇关于Springboot 2.x中server.servlet.context-path的运用详解的文章就介绍到这了,更多相关Springboot 2.x server.servlet.context-path内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java中的日期和时间比较大小

    java中的日期和时间比较大小

    这篇文章主要介绍了java中的日期和时间比较大小,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Java非静态成员变量之死循环(详解)

    Java非静态成员变量之死循环(详解)

    下面小编就为大家带来一篇Java非静态成员变量之死循环(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • JavaBean和Map转换封装类的方法

    JavaBean和Map转换封装类的方法

    下面小编就为大家带来一篇JavaBean和Map转换封装类的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • SpringBoot 2.x整合Log4j2日志的详细步骤

    SpringBoot 2.x整合Log4j2日志的详细步骤

    log4j2优越的性能其原因在于log4j2使用了LMAX,一个无锁的线程间通信库代替了,logback和log4j之前的队列,并发性能大大提升,下面这篇文章主要给大家介绍了关于SpringBoot 2.x整合Log4j2日志的相关资料,需要的朋友可以参考下
    2022-10-10
  • 简单了解Thymeleaf语法 数据延迟加载使用实例

    简单了解Thymeleaf语法 数据延迟加载使用实例

    这篇文章主要介绍了简单了解Thymeleaf语法 数据延迟加载使用实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2010-05-05
  • IDEA中安装testng插件过程

    IDEA中安装testng插件过程

    这篇文章主要介绍了IDEA中安装testng插件过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • SpringCloud中的Consul详解

    SpringCloud中的Consul详解

    这篇文章主要介绍了SpringCloud中的Consul知识,本文使用的是docker-compose方式管理consul服务,直接启动即可,需要的朋友可以参考下
    2022-03-03
  • Java编程学习的几个典型实例详解

    Java编程学习的几个典型实例详解

    这篇文章主要给大家介绍了Java编程学习的几个典型实例,其中包括模拟酒店房间管理系统、螺旋矩阵 例或者百鸡问题的变形等经典实例,具体来一起看详细内容吧,需要的朋友可以参考学习。
    2017-02-02
  • java占位符替换五种方式小结

    java占位符替换五种方式小结

    我们经常会遇到需要替换字符串中的占位符的情况,本文主要介绍了java占位符替换五种方式小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-06-06
  • springmvc如何使用POJO作为参数

    springmvc如何使用POJO作为参数

    这篇文章主要介绍了springmvc如何使用POJO作为参数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01

最新评论