【发布时间】:2014-07-04 10:36:44
【问题描述】:
我目前正在将业务逻辑从控制器方法转移到服务,当时我掉进了 grails 服务的兔子洞。我的服务中有以下方法:
Job closeJobOpportunity(Job op, Employee res) {
op.chosenOne = res
op.requisitionCanceledDate = new Date()
if(!op.chosenOne || !op.hrEffectiveDate){
return null
}
else if(StringUtils.isEmpty(op.chosenOne.id)){
return null
}
return op
}
我开始考虑这种方法可能导致同步问题的不同方式(因为 grails 使服务成为单例),并注意到 grails 文档提到只要您不使用,就应该将业务逻辑放入服务中'不存储状态。
冒着听起来无知或不了解情况的风险,有人可以简单地提供 Grails 中的有状态服务和无状态服务之间的区别吗?上述方法是有状态的吗?然后它应该被控制器中的 try catch 包围吗?
【问题讨论】: