如何在config.groovy中访问grailsApplication配置
有没有办法从如何在config.groovy中访问grailsApplication配置,grails,Grails,有没有办法从grailsApplication.config内部config.groovy获取属性? (我正在使用Grails2.0.3) 工作 使用grailsApplication,我可以在resources.groovy中获得配置值: def cfg = grailsApplication.config someBean(SomeClass){ foo = cfg.smpt.host } 不工作 但是在Config.groovy中,它不起作用;返回主机和端口值的空映射: //
grailsApplication.config
内部config.groovy
获取属性?
(我正在使用Grails2.0.3)
工作使用
grailsApplication
,我可以在resources.groovy
中获得配置值:
def cfg = grailsApplication.config
someBean(SomeClass){
foo = cfg.smpt.host
}
不工作但是在
Config.groovy
中,它不起作用;返回主机
和端口
值的空映射:
//Config.groovy
def cfg = grailsApplication.config
grails {
mail {
host = cfg.smtp.host //empty value!
port = cfg.smtp.port //empty value!
}
}
解决方法将邮件配置移动到自定义配置文件中,并在本地引用属性,而不使用
grailsApplication
:
//myconfig.groovy (dev)
smtp.host
smtp.port
grails {
mail {
host = smtp.host
port = smtp.port
}
}
这是可行的,但迫使我在dev、qa、uat、prod的每个配置文件中重复邮件配置,从而创建重复的配置
为什么
grailsApplication.config
在resources.groovy
中工作,而在config.groovy
中不工作 重复问题。使用grails.util.Holders
。我读到ConfigurationHolder
被弃用,那么Holders
是2.0的替代品吗?
//Config.groovy
grails.smtp.host = HOST
grails.smtp.port = PORT
//we can use
grails.mail.host = grails.smtp.host
grails.mail.port = grails.smtp.port