有没有办法从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
中不起作用?
最佳答案
//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
关于grails - 如何在Config.groovy中访问grailsApplication配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21492720/