我是Grails和Web开发的新手。我开始在计划管理网站上做一个项目。我遇到了Grails提供的Service
概念。我理解这个概念,但我仍然对何时使用服务感到困惑。
例如,我需要实现search
模块,其中manager
可以搜索user
以找到他的schedules
。在这种情况下,将它实现为控制器或服务是好的吗?
所以,
Service
?答案 0 :(得分:6)
添加到Grooveek的答案;
使用服务来保持控制器的美观和清洁也很不错。
因此,视图只是将数据呈现到屏幕,域对象存储状态,控制器在应用程序周围路由用户,服务执行工作。
答案 1 :(得分:3)
我没有足够的声誉评论答案或投票,所以我必须提供一个真正应该是评论的答案。反正...
+1 @tim_yates回答。一定要爱瘦控制器。我将添加到控制器描述中的两件事:
对我而言,理想情况下,服务永远不会处理将String参数转换为其固有类型。或者处理构建要在视图上显示的模型。
答案 2 :(得分:2)
我应该使用Service
的内容和位置?
当您希望控制器执行某些可能被其他控制器重用的操作时 在我们的应用程序中,我们正在进行功能性的服务分离。我们有一个CorePersistanceService,它提供了创建,删除,更新和操作Core Domain Classes(我们的核心)的方法。
我认为持久性服务是在整个Grails代码中重用GORM代码的好方法。你可以在域类中创建方法,但我不喜欢这样,我认为这种方法不太可能。
我们有一个用于PDF创建的PDFService类,一个连接到Solr的SolrService,一个统计服务,收集我们收集数据统计数据的所有方法
Grails中的服务是一种围绕特定功能主题收集方法的方式,以便能够在控制器中重用它们(我忘了提到我们的SecurityService,这是一个非常好的跨应用程序示例)