2014-01-08 61 views
1

Grails应用程序基于我的外部属性文件,然后我想要在config.groovy(grails.plugins.springsecurity.providerNames)中加载相应的提供程序。这意味着根据外部配置中的属性在config.groovy中进行检查。有没有办法在config.groovy或其他建议之前加载外部配置?grails如何在config.groovy之前加载外部配置文件

回答

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() 
} 
5

看一看Externalized Configs。特别地,

值具有如先前所定义的值将 覆盖现有的值,以及所指向的结构 源在它们被定义的顺序加载相同的名称。

配置默认作为

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

+0

让我解释一点,在外部属性文件,我有:grails.plugins.springsecurity.providerType = SAML然后在Config.groovy中我想如果(grails.plugins.springsecurity.providerType =做='saml'{grails.plugins.springsecurity.providerNames = ['samlAuthProvider']}这允许客户说他们想要使用saml,但是代码会说明使用哪个提供者。 – user3173838

相关问题