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