繁体   English   中英

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

[英]How can I map a Spring Boot @RepositoryRestResource to a specific 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定义为: “用于导出此资源的路径段”。

我究竟做错了什么?

您需要扩展RepositoryRestMvcConfiguration并覆盖configureRepositoryRestConfiguration(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));
    }
}

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

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

正确的应用程序属性如下: spring.data.rest.base-path=/my/base/path base-path而不是base-uri

在春季靴子2

@Configuration
public class RepositoryConfiguration extends RepositoryRestConfigurerAdapter
{

   @Override
   public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config)
   {
      config.setBasePath("/my/base/uri");
   }
}

我认为path属性用于指定路径 (因此没有斜线)。 “/ some / other / path”必须是servlet路径或上下文路径(即与Spring Data无关)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM