我想从注入的服务初始化Command字段。
所以我需要在完全初始化之后执行Command方法,但 params
之前被分配给字段。
我该怎么办?好的,我可以在构造函数中手动获取Service bean。有更好的方法吗?
@PostConstruct
或InitializingBean
没有运气 - 看起来Command不是豆子,对吗?
Grails 1.3.5
答案 0 :(得分:1)
你是对的,命令不是bean。您可以通过服务方法实例化命令实例并在那里进行初始化并将实例返回给控制器。比调用控制器的bindData和返回的实例,如下所示:
// controller code
def myService // injected
def action = {
def command = mySerivce.createCommandInstance()
bindData(command, params)
}
// service code
class MyService {
def createCommandInstance() {
def cmd = new MyCommand()
doSomeInitializationWithCommand(cmd)
return cmd
}
}