【发布时间】:2013-07-16 08:52:01
【问题描述】:
Repository和Service应该如何分离?恕我直言客户端(例如控制器)应该主要使用服务层而不是存储库,因为它应该与持久性实现分开。 Single Repository 应该只提供一个实体的访问方法,而 Service 的方法能够提供更复杂的操作,包括使用多个 Repository。
但是如何处理丰富的存储库,它不仅提供 CRUD 方法,还提供更多方法,比如 Spring Data 中的 JPARepository?在这样的实现中,有很多可能的获取对象的方法,在 Service 中复制它们并不酷。
那么解决这个问题的方法是什么?
A.像这样的服务层中的重复方法
@Service
class XService{
@Autowired
private XRepository repository;
public List<X> findAll(){
return repository.findAll();
}
}
B.只需在控制器中使用存储库(自动装配或服务中的访问方法)
C.还有什么好的方法吗?
【问题讨论】:
标签: java service repository layer