现在的位置: 首页 > 综合 > 正文

grails中配置文件的读取[适用1.0RC1+]

2019年09月24日 ⁄ 综合 ⁄ 共 2418字 ⁄ 字号 评论关闭

  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

抱歉!评论已关闭.