如何将Spring Boot@RepositoryRestResource映射到特定的URL?

我似乎无法在以下位置以外的任何位置映射我的存储库:

@RepositoryRestResource(collectionResourceRel = "item", path = "item")
public interface ItemRepository extends PagingAndSortingRepository<Item, Long> {

我以为我可以使用:

 path = "/some/other/path/item"

但映射无法解析。我得到:

HTTP ERROR 404

Problem accessing /some/other/path/item. Reason:

Not Found

在 spring-data 中,javadoc 被定义为:“导出此资源的路径段。path

我做错了什么?


答案 1

要更改基本 URI,您也可以将其添加到 application.properties:

spring.data.rest.base-path=/my/base/uri

答案 2

您需要扩展并覆盖 以设置您的 .例如:RepositoryRestMvcConfigurationconfigureRepositoryRestConfiguration(RepositoryRestConfiguration config)baseUri

@Configuration
public class MyRepositoryRestMvcConfiguration extends RepositoryRestMvcConfiguration {

    private static final String MY_BASE_URI_URI = "/my/base/uri";

    @Override
    protected void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
        super.configureRepositoryRestConfiguration(config);
        config.setBaseUri(URI.create(MY_BASE_URI_URI));
    }
}

推荐