@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 {...
答
@RepositoryRestController
处理基本路径只为它管理资源。在其他情况下,路径不应包含“基础”。
如果要在basePath之下构建自定义操作,则可以使用@BasePathAwareController
。
你是如何设置[basePath](https://docs.spring.io/spring-data/rest/docs/current/reference/html/#_changing_the_base_uri)的? – Cepr0
在'application-default.yml'中,'spring:data:rest:basePath:/ basepath' – aycanadal
很奇怪。在我的测试项目中,所有工作都按预期工使用1.5.4或1.4.3 Spring Boot。 – Cepr0