@Controller 不再使用 spring.data.rest.base-path 变量用于 REST URL 用于 @RequestMapping

@Controller no longer using spring.data.rest.base-path variable for REST URL for @RequestMapping

我为所有 @Entity 个对象创建了一个 @RestController 正在使用 application.peroperties 中设置为 [=23] 的 spring.data.rest.base-path 变量正确设置 REST URL =] 但对于 @RequestMapping("someEndpoint") 它没有使用变量。

例子

对于 @Entity class 用户,REST 端点位于:

`http://localhost:8081/api/users'

但是当我尝试访问时 someEndpoint:

'http://localhost:8081/api/someEndpoint'

我收到以下回复:

响应状态

HTTP/1.1 404 Not Found

正文

"timestamp":1461267817272,"status":404,"error":"Not Found","message":"No message available","path":"/api/someEndpoint"}

相反,REST 服务的端点位于

'http://localhost:8081/someEndpoint'

回复:

HTTP/1.1 200 OK

控制器class

@RestController
public class HomeController {

    @RequestMapping(value = "/")
    public String index() {
        return "index";
    }

    @RequestMapping("someEndpoint")
    public Stuff runSomething(
            @RequestParam(value = "id", required = true) String id)

我的配置中缺少什么?

谢谢

spring.data.rest.base-path 用于 Spring 数据 REST,它通过 REST 和 HATEOAS 将存储库暴露给外部,不适用于 spring 上下文。

你想要的是 server.context-path Spring MVC 东西。

检查 here 以获得完整属性。