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

ALM*_*ALM 1 rest spring spring-data applicationcontext spring-data-rest

我使用变量set in 为正确设置REST URL的@RestController所有@Entity对象创建了一个对象,但是它没有使用变量.spring.data.rest.base-pathapplication.peroperties/api@RequestMapping("someEndpoint")

对于@Entity类User,REST端点位于:

`http://localhost:8081/api/users'
Run Code Online (Sandbox Code Playgroud)

但是当我尝试访问时someEndpoint:

'http://localhost:8081/api/someEndpoint'
Run Code Online (Sandbox Code Playgroud)

我收到的答复是:

响应状态

HTTP/1.1 404 Not Found
Run Code Online (Sandbox Code Playgroud)

身体

"timestamp":1461267817272,"status":404,"error":"Not Found","message":"No message available","path":"/api/someEndpoint"}
Run Code Online (Sandbox Code Playgroud)

相反,REST服务的端点位于

'http://localhost:8081/someEndpoint'
Run Code Online (Sandbox Code Playgroud)

响应:

HTTP/1.1 200 OK
Run Code Online (Sandbox Code Playgroud)

控制器类

@RestController
public class HomeController {

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

    @RequestMapping("someEndpoint")
    public Stuff runSomething(
            @RequestParam(value = "id", required = true) String id)
Run Code Online (Sandbox Code Playgroud)

我的配置中缺少什么?

谢谢

wen*_*ner 6

spring.data.rest.base-path 适用于Spring Data REST,它通过REST使用HATEOAS将存储库暴露给外部,而不是用于Spring上下文.

你想要的是server.context-pathSpring MVC的东西.

点击此处查看完整房产.