如何在Config.groovy中访问grailsApplication配置

时间:2014-02-01 00:50:19

标签: grails

有没有办法从 grailsApplication.config内的获取Config.groovy的媒体资源? (我正在使用Grails 2.0.3)

工作
使用grailsApplication,我可以在resources.groovy中获取配置值:

def cfg = grailsApplication.config
someBean(SomeClass){
  foo = cfg.smpt.host
}

不工作
但在Config.groovy中,它不起作用;返回hostport值的空地图:

    //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中?

1 个答案:

答案 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