我似乎无法在以下任何位置映射我的存储库:
@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
被定义为:"The path segment under which this resource is to be exported."
我做错了什么?
答案 0 :(得分:12)
您需要延长RepositoryRestMvcConfiguration
并覆盖configureRepositoryRestConfiguration(RepositoryRestConfiguration config)
以设置您的baseUri
。 e.g。
@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));
}
}
答案 1 :(得分:11)
要更改基本URI,您还可以将其添加到application.properties:
spring.data.rest.base-path=/my/base/uri
答案 2 :(得分:5)
正确的应用程序属性如下:
spring.data.rest.base-path=/my/base/path
(base-path
代替base-uri
)
答案 3 :(得分:2)
在春季靴子2
@Configuration
public class RepositoryConfiguration extends RepositoryRestConfigurerAdapter
{
@Override
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config)
{
config.setBasePath("/my/base/uri");
}
}
答案 4 :(得分:0)
我认为path属性用于指定路径 segment (所以没有斜杠)。 &#34; / some / other / path&#34;必须是servlet路径或上下文路径(即与Spring Data无关)。