Tho*_*ler 5 java model-view-controller spring dao hibernate
让我们假设一个简单的Spring MVC Controller接收域对象的ID.Controller应该调用应该对该域对象执行某些操作的服务.
通过从数据库加载域对象的ID,将域名对象的ID"转换"到哪里?这不应由财务主任完成.因此,服务方法接口必须使用接受ID的的域对象而不是域对象本身.但是如果将域对象作为参数,则服务的接口会更好.
您对此常见用例有何看法?你是如何解决这个问题的?
控制器应该将 id 传递到服务层,然后返回呈现 HTTP 响应的其余部分所需的任何内容。
所以 -
Map<String,Object> doGet (@RequestParam("id") int id) {
return serviceLayer.getStuffByDomainObjectId(id);
}
Run Code Online (Sandbox Code Playgroud)
其他任何事情都会污染网络层,而网络层根本不应该关心持久性。服务层的全部目的是获取领域对象并告诉它们执行业务逻辑。因此,数据库调用应该驻留在服务层中 -
public Map<String,Object> getStuffByDomainObjectId(int id) {
DomainObject domainObject = dao.getDomainObjectById(id);
domainObject.businessLogicMethod();
return domainObject.map();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3181 次 |
| 最近记录: |