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

标签 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.configresources.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/

相关文章:

grails - grails:即使设置了错误也保存了数据

grails - Spring Security密码验证(密码中的特殊字符)

java - 如何读取控制台输出

eclipse - m2e - 无法解析 'pom' 的依赖类型

grails - Grails-唯一约束未按预期工作

php - 如何从 Grails 调用 php 脚本?

sql-server - GRAILS 3 sql 表达 : no driver

grails - 不能在Intellij 14.1 CE中导入Grails和Gradle

带有单独主 Controller View 的 Grails Controller 填充菜单

java - GRAILS:永久链接/slug 生成方法?