@RepositoryRestController不承认

问题描述:

我有以下控制器:@RepositoryRestController不承认

@RepositoryRestController 
public class TestController { 

    @RequestMapping(value = "/testables", method = RequestMethod.GET) 
    public String get(){ 

     return "testin it"; 

    } 

} 

而且它不是由Spring回升。当我点击/apiroot/testables地址时,我得到404。如果我将其更改为@RestController并添加api root来请求映射值,那么它就可以工作。另外,如果我将映射更改为指向"/orders/testables",则它的工作方式为@RepositoryRestController。我也有在同一个包下面控制器的正常工作:

@RepositoryRestController 
public class SendEmailController { 

    @Autowired 
    private MessageSource messageSource; 

    @Autowired 
    private JavaMailSender javaMailSender; 

    @Autowired 
    private OrderRepository orderRepository; 

    @RequestMapping(value = "/orders/{id}/sendOrderEmailToSupplier") 
    public void sendOrderEmailToSupplier(@PathVariable("id") Long id, WebRequest request) throws MessagingException {... 
+0

你是如何设置[basePath](https://docs.spring.io/spring-data/rest/docs/current/reference/html/#_changing_the_base_uri)的? – Cepr0

+0

在'application-default.yml'中,'spring:data:rest:basePath:/ basepath' – aycanadal

+0

很奇怪。在我的测试项目中,所有工作都按预期工使用1.5.4或1.4.3 Spring Boot。 – Cepr0

@RepositoryRestController处理基本路径只为它管理资源。在其他情况下,路径不应包含“基础”。

如果要在basePath之下构建自定义操作,则可以使用@BasePathAwareController