我正在编写一个Spring Rest应用程序,问题是我不确定何时应该使用repository
还是将service
接口与其中的implementation
一起使用。假设我有一个具有方法findById
的存储库,我创建了一个服务接口,该接口具有与返回对象相同的方法,并称为Object findById(Long id);
,我想知道是否应该创建该方法的实现看起来像这样
public Object findById(Long id) {
repository.findById(id).orElseThrow(() -> new RuntimeException("message"));
}
但是如果没有此服务类,我也可以做同样的事情,因为存储库还返回了Optional,所以它也可以在控制器中完成
repository.findById(id).orElseThrow(() -> new RuntimeException("message"));
但是很难测试存储库,更好的方法是创建服务的实现,然后测试服务。无论如何,您对此有何看法,哪一种对您更好,为什么?
答案 0 :(得分:-1)
我认为这全都与您的项目架构有关。 N-Layer
体系结构是最经典,最简单和最喜欢的体系结构之一,通常由3个主要层实现。 Controllers
,Services
和Repositories
。
Controllers
负责从客户端获取请求,通常通过调用Services
来更新模型并为客户端返回响应。
Services
是实现业务逻辑的地方,通常应在其中检查事务管理和一些安全性检查等。
最后是Repositories
,您可以在其中与File System
和Database
之类的基础系统进行交互,以保存应用程序的状态。