grails如何在config.groovy之前加载外部配置文件

时间:2014-01-08 15:15:26

标签: grails configuration

Grails app根据我的外部属性文件,我想在config.groovy(grails.plugins.springsecurity.providerNames)中加载适当的提供程序。这意味着根据外部配置中的属性对config.groovy进行检查。有没有办法在config.groovy或其他建议之前加载外部配置?

2 个答案:

答案 0 :(得分:5)

看看Externalized Configs。特别地,

  

与先前定义的值具有相同名称的值将   覆盖现有值,并指向配置   源按照定义的顺序加载。

配置默认

  

包含在描述的位置中的配置值    grails.config.locations 属性将覆盖中定义的任何值   您的应用程序Config.groovy文件可能不是您想要的。   您可能希望加载一组可以的默认值   在应用程序的Config.groovy文件或文件中覆盖   命名配置位置。为此您可以使用    grails.config.defaults.locations 属性。

答案 1 :(得分:1)

我最后只是在config.groovy中读取我需要的一个属性的属性文件。也许不是最好的解决方案,但这很有效。

Properties prop = new Properties()
try {
  File fileLoc=new File((grails.config.locations[0] as String).substring(5))
  prop.load(new FileInputStream(fileLoc))
  providerType = prop.getProperty("grails.plugins.springsecurity.providerType") ?:''
} catch (IOException ex) {
  ex.printStackTrace()
}