grails-app/services,grails-app/utils和src文件夹之间的区别

ubi*_*con 13 model-view-controller grails

我试图确定这三个文件夹之间的差异以及我应该放在它们中的内容.

截至目前,我已经将类,接口和其他任何与我的域类结构直接相关的内容(通过扩展或实现)抛出到该src文件夹中.任何涉及额外的事务逻辑的东西都超出了Grails控制器的默认值我已经放入grails-app/services文件夹.最后,任何包含"帮助"方法的类(即比较各种事物,特殊字符串操作等)我一直在放入grails-app/utils文件夹.

如果我错过了应该使用这些文件夹的标记,请把我放在正确的道路上.

Bur*_*ith 11

那非常接近.grails-app/utils用于编解码器类 - 它的名称很奇怪并且记录不足.我将帮助程序类移回src/groovy.

使用服务进行事务性工作非常好,但您也可以将服务用于非事务性方法.添加static transactional = false到具有不需要事务的实用程序方法的服务类.请注意,控制器中没有事务性,因此您应将所有持久性移至事务性服务.

src/groovy帮助器类中的静态实用程序方法和服务中的非事务性方法几乎是等价的,因此对我来说,决定采用哪种路由将归结为依赖关系.如果该类依赖于Spring bean,请将其作为服务并通过依赖注入引用它们.否则只需将它作为辅助类.

  • 我认为我对实际定义交易的内容感到困惑.在这里(http://grails.1312388.n4.nabble.com/Post-authorization-method-hook-for-Spring-Security-plugin-td4631011.html)在我使用`withTransaction`之前,我无法从我的数据库访问任何内容正如你所建议的那样,所以我假设访问数据库的任何逻辑都是"事务性的".现在看来我的假设是错误的.您能否通过定义什么被视为"交易"来澄清? (2认同)