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