grials中允许我们使用properties文件与groovy文件让开发人员自定义配置信息,我们平台现在只使用了properties,并且读取时是使用java的方式去读取,那样稍显复杂,其实可以通过如下方式配置与读取:
我们的工程中主要使用的配置文件有:
Config.groovy (工程自动读取,我们并没有配置)
DataSource.groovy (工程自动读取,我们并没有配置)
gjunProperties.properties (我们配置了数据连接信息)
StuDataIn.properties (配置了学生批量导入与平台中使用的IP)
validate.properties (我写的一个验证器所需要的信息)
现在我们自定义了一个通用方法去读取properties文件:ExtendMethodController.getBundleString(String bundelName,String itemString)
其实我们可以在Config.groovy文件中设置平台使用的配置文件:
grails.config.locations = ["file:${System.properties['base.dir']}/grails-app/conf/gjunProperties.properties",
"file:${System.properties['base.dir']}/grails-app/conf/user/StuDataIn.properties",
"file:${System.properties['base.dir']}/grails-app/conf/user/validate.properties"
]
(Config.groovy与DataSource.groovy这两个文件不需要特别配置,系统会自动读取,配置后系统会把这三个文件设置为系统的配置文件)
读取的方法:
一.读取Config.groovy中的内容.如我们在Config.groovy中配置了:
myConfig{
configString = "This is my config"
}
读取的方法:
1.grailsApplication.config.myConfig.configString
2.先导入类:import org.codehaus.groovy.grails.commons.ConfigurationHolder
ConfigObject configObject = ConfigurationHolder.getConfig()
def dsConf = configObject.getProperty("myConfig")
println dsConf.configString
二.读取properties文件,在properties文件中配置了:
propertiesConfig.configString = config string in properties file.
读取的方法:
1.grailsApplication.config.propertiesConfig.configString
2.先导入类:import org.codehaus.groovy.grails.commons.ConfigurationHolder
ConfigObject configObject = ConfigurationHolder.getConfig()
def dsConf = configObject.getProperty("propertiesConfig")
println dsConf.configString
以下说明一下原因:
在Config.groovy文件中设置了grails.config.locations,可以让grails知道设置的文件需要做为系统的配置文件,系统会把所有的配置项都加载到grailsApplication.config对应的ConfigObject对象中,便可以"."的方式读取配置项.
如果不在Config.groovy文件中设置grails.config.locations,也可以读取groovy文件中的配置信息,但properties文件使用java读取的方式会简单些.
不设grails.config.locations读取groovy文件:
def cs = new ConfigSlurper().parse(new java.io.File(System.properties["base.dir"]+"/grails-app/conf/user/gro.groovy").toURL()) println cs.tests.name
原文地址:https://www.jb51.cc/groovy/842725.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。