Springboot2.x中t-path的运⽤详解
今天在开发项⽬的时候遇到了请求不通API的问题,最开始以为是t-path配置导致的问题,最终发现是由于AWS端⼝未开放/监听导致的connection refuse。虽然如此,仍然想记录⼀下t-path的作⽤。
功能
这个配置能够设置项⽬中的所有API的上下⽂路径(URL的⼀部分),与@RequestMapping有异曲同⼯之妙。
我们知道,@RequestMapping能够在API⽅法层级声明,同时能够在Controller的类层级声明,为什么能够在多层级声明呢?⼤家很容易想到,为了使API url的语义性,遵从REST标准的API是⾮常棒的,同⼀个Controller下的URL前缀相同能够⾮常明确的表达语义与关联关系。
servlet和tomcat的关系那么,如果我们有多个项⽬/微服务呢?也应该做到这⼀点,只不过是以更⼤的层级⽅式在应⽤。t-path能够以⼀个project为单位配置默认的URL上下⽂路径,保持设计的⼀致性是⾮常合适的做法。
⽤法
如果我们没有添加任何配置,则为默认值“/”,
我们可以在Springboot的properties下配置:
t-path=/api/demo
如果使⽤的是yml配置⽅式,则为:
server:
servlet:
context-path:/api/demo
那么我们调⽤⼀个地址本来为 [ip地址]:[端⼝号]/books 的API,现在变成了 [ip地址]:[端⼝号]/api/demo/books
注意配置上有⼀个⼩坑,如果你使⽤的是Springboot 1.x版本,我们需要改为使⽤ t-path 来配置路径。优点
我们能够通过此配置在更⼤的层级上做统⼀的路径配置,体现了RESTFul的语义化API URL的优势。
便于配置Ngnix的请求分发
SpringBoot2.X配置t-path不⽣效的解决
之前看视频教程的时候发现教程上的配置是这样的
然后我按照这样配置发现重启了并未⽣效
Tomcat started on port(s): 8081 (http) with context path ''
后来百度发现原来1.X版本这样配置是可以的,但是2.X版本需要如下配置才能⽣效
t-path=/Daojihe
Tomcat started on port(s): 8081 (http) with context path '/Daojihe'
到此这篇关于Springboot 2.x中t-path的运⽤详解的⽂章就介绍到这了,更多相关Springboot 2.x t-path内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论