我想添加外部配置数据。所以我在主文件Config.groovy
中增加了以下行。grails war tomcat with external config file
我导出的环境变量
DASH_CONFIG=<path_to_external_configfile>/extConfig.properties
extConfig.properties
simpleBSMDash.default.serverName = "test.it.com" simpleBSMDash.default.refreshInterval = "5"
Config.groovy中
if(System.getenv('DASH_CONFIG')) { println("Including configuration file: " + System.getenv('DASH_CONFIG')); grails.config.locations = [ "classpath:exthConfig.properties", "file:./extConfig.properties", "file:${System.getenv('DASH_CONFIG')}"] } else { println "No external configuration file defined." }
BootStrap.groovy中
我初始化Boostrap.groovy中的一些配置参数。
grails -Denv=DEV run-app
:例如import org.codehaus.groovy.grails.commons.ConfigurationHolder new AdminSettings( refreshInterval:"${ConfigurationHolder.config.simpleBSMDash.default.refreshInterval}", serverName:"${ConfigurationHolder.config.simpleBSMDash.default.serverName}").save(failOnError:true)
当通过本地运行的应用程序。一切工作正常,实例AdminSettings被创建并用期望的值初始化。
当我在我的tomcat服务器上部署war文件时,intance AdminSettings没有被定义。然而,我没有出口环境变量
DASH_CONFIG=<path_to_external_configfile>/extConfig.properties.
我的事件把extConfig.properties
文件夹$TOMCAT_HOME/lib
,它并没有正常工作。
我将它重命名为extConfig.groovy
,它也没有帮助。
我通过stackflow进行搜索,但没有找到正确的答案。
有没有人有想法?
或试试这个:http://phatness.com/2010/03/how-to-externalize-your-grails-configuration/ – CharlesW 2015-02-10 17:59:43
感谢@CharlesW为您答复,但我已经测试过您的选择,它不工作... – viz 2015-02-11 23:56:41