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