我已经实现了一个简单的Spring Data REST存储库,该存储库可以按预期工作,并且可以公开所有方法。看起来像这样:
@RepositoryRestResource(path = "employees")
public interface EmployeeRepository extends PagingAndSortingRepository<Employees, Integer>
{ }
现在,我想将此存储库包装在控制器中,以便以后可以将Hystrix添加到其中以进行备用和异常处理。现在的问题是,我想保留存储库的行为,然后将响应通过控制器传递给客户端。是否可以在不重新实现存储库的所有方法(包括排序和分页)的情况下实现?
这是我的控制器当前的样子:
@RepositoryRestController
public class EmployeeController {
private final EmployeeRepository repository;
@Autowired
public EmployeeController(EmployeeRepository repo) {
repository = repo;
}
// Here I would like to return the same respone as my repository does
@RequestMapping(method = GET, value = "/employees")
public @ResponseBody ResponseEntity<?> parseRequest() {
return ResponseEntity.ok("hi");
}
}
答案 0 :(得分:0)
似乎您可以简单地从存储库中调用该方法。你试过了吗?
@RepositoryRestController
public class EmployeeController {
private final EmployeeRepository repository;
@Autowired
public EmployeeController(EmployeeRepository repository) {
this.repository = repository;
}
@RequestMapping(method = GET, value = "/employees")
public @ResponseBody ResponseEntity<List<Employee>> parseRequest() {
List<Employee> employees = repository.getEmployees();
return ResponseEntity(employees, HttpStatus.OK);
}
}