如何在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