我是Grails的新手。我注意到大多数教程都显示了在Controller中创建和存储的查询。随着时间的推移,这似乎会使控制器真正膨胀,尤其是随着查询数量和复杂性的增加。
在我的研究中,我读到控制器应尽可能保持精简(与向模型/视图请求和提交数据有关,并且不鼓励进行大量查询。
您是如何为Grails应用程序创建,存储和调用查询的?
答案 0 :(得分:2)
有一篇关于Grails最佳实践的好文章here。根据帖子:
不允许控制器接管其他角色。一个角色 controller是接受传入请求,检查权限等,请教 结果的域或服务,将结果返回给 请求者使用所需的格式,例如HTML,JSON或XML。保持 控制器尽可能薄。不要执行业务逻辑,查询, 或控制器内的更新。
因此,如果您有更复杂的逻辑,我建议您构建服务:
服务是复杂业务逻辑或粗略的合适候选者 粒度代码。如果需要,可以轻松地将服务API公开为 RESTful / SOAP Web服务。
答案 1 :(得分:1)
这就是服务的用途。 将所有域操作逻辑放在服务中,并将控制器限制为“中间人”角色 - 绑定并验证请求参数,调用服务并呈现结果。