Spring Data REST存储库的rest控制器

时间:2019-05-01 15:36:19

标签: spring rest spring-boot spring-data spring-data-rest

我已经实现了一个简单的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");
    }
}

1 个答案:

答案 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);
    }
}