java如何仅为rest控制器更改基本url?
是否有任何配置选项只允许更改rest控制器的基本url,例如,如果我的api的基本url是www.example。com/user/{id}变成了www.example。com/rest/user/{id}
我使用的是spring boot v1。3.2
我试图创建自定义注释,通过添加RequestMapping来扩展RestController。 下面是一个例子,但它不起作用
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@RestController
@RequestMapping(value = "/rest", path = "/rest")
public @interface MyRestController { }
# 1 楼答案
您应该在应用程序中添加
server.servlet-path=/api
。属性文件和您应该发送的所有请求,如domain/api/users/{id}# 2 楼答案
通常,您会定义一个servlet来处理所有(或特定的一组)restful请求。然后,您会告诉servlet监听一个特定的URL模式,比如
/rest
。控制器的@RequestMapping
注释不知道这种“顶层”模式例如,在引导SpringWeb应用程序时,可以手动创建restful servlet并添加映射。整个设置有点太大,无法发布在这里,但请在下面找到一个片段,以获得一个概念
# 3 楼答案
更新了Spring Boot v2的配置。1.0
在Spring Boot v2中。1.0您可以在
application.properties
中配置基本URL,如server.servlet.context-path = /baseApiName
Complete property configuration list
# 4 楼答案
选项1:自定义注释
创建一个声明基本URL的自定义注释,并用它代替@RestController
CustomRestControlleran符号。java
firstrest控制器。java
SecondRestController。java
选项2:基本控制器
通过创建一个基本控制器作为所有实际控制器的模板,您可以从单个位置有效地管理根URL
BaseRestController。java
然后,您只需为所有实际控制器扩展这个类
firstrest控制器。java
SecondRestController。java
选项3:Spring数据REST
如果您的控制器正在从存储库中提供数据,那么Spring Data REST可以删除大部分样板文件&;解决你最初的问题
pom。xml
通过声明此依赖关系,所有存储库都会自动启用REST
可以通过使用属性文件来控制基本URL
应用程序。属性