有没有办法从 grailsApplication.config
内的获取Config.groovy
的媒体资源?
(我正在使用Grails 2.0.3)
工作
使用grailsApplication
,我可以在resources.groovy
中获取配置值:
def cfg = grailsApplication.config
someBean(SomeClass){
foo = cfg.smpt.host
}
不工作
但在Config.groovy
中,它不起作用;返回host
和port
值的空地图:
//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
中?
答案 0 :(得分:1)
//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