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

时间:2016-04-21 19:47:23

标签: spring rest spring-data spring-data-rest applicationcontext

我使用@RestController@Entity设置为spring.data.rest.base-path的{​​{1}}变量为application.peroperties个对象创建了/api@RequestMapping("someEndpoint")。 {1}}它没有使用变量。

实施例

对于@Entity类用户,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

控制器类

@RestController
public class HomeController {

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

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

我的配置中缺少什么?

谢谢

1 个答案:

答案 0 :(得分:6)

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

对于Spring MVC,你想要的是server.context-path

检查here是否有完整属性。