将Spring Rest控制器映射到没有Servlet上下文的路径

时间:2019-10-18 19:51:16

标签: java spring rest spring-boot

我有一个具有以下上下文路径的spring boot应用程序:

server.servlet.context-path:/api

我需要编写一个映射到的rest控制器 http://localhost:8080/logout 而不是http://localhost:8080/api/logout

有没有办法做到这一点?不能更改“ server.servelt.context-path”值。

这是我尝试但没有起作用的:

@GetMapping(value="../signout"){
public void logout(){
}

2 个答案:

答案 0 :(得分:1)

Nero,您说不能更改“ server.servlet.context-path”值。我敢打赌,您之所以这么说是因为您不想破坏API,但是我认为您可以在不破坏API的情况下进行更改。将上下文路径设置为空白,这是允许的。然后,在您的应用程序中,将我认为当前为“ /”的“ api”映射更改为“ api”。

  1. server.servlet.context-path:/api更改为server.servlet.context-path:/或也许更改为server.servlet.context-path:(无斜杠)。 (假设这是默认设置,所以您可以将其完全删除。)

  2. 在您的应用程序中的某处将@RequestMapping("/")更改为@RequestMapping("/api")

现在您还可以拥有@GetMapping(value="/signout"),并且您将在http://localhost:8080/logouthttp://localhost:8080/api拥有资源。

我不知道您碰巧正在使用什么映射注释,但是希望这已经足够清楚了。

答案 1 :(得分:0)

在该应用程序内可能无法超出其上下文根。也许您可以为该特定网址创建一个单独的Rest服务应用,然后从那里获取。

相关问题