加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Grails3配置加载策略

发布时间:2020-12-14 16:42:21 所属栏目:大数据 来源:网络整理
导读:Grails 3的官方配置文档对grails3加载配置的策略,以及覆盖策略提之甚少,有价值的参考信息太少。由于Grails3基于Spring-boot项目,因此通过更底层的Spring-boot的配置说明,可以得到很多有价值的信息。 详细的Spring-boot配置参考官方文档,这里仅罗列出几

Grails 3的官方配置文档对grails3加载配置的策略,以及覆盖策略提之甚少,有价值的参考信息太少。由于Grails3基于Spring-boot项目,因此通过更底层的Spring-boot的配置说明,可以得到很多有价值的信息。

详细的Spring-boot配置参考官方文档,这里仅罗列出几个重要的

改变应用程序的properties文件的路径

  • 在应用程序代码中显式指明@PropertySource

  • 设置spring.config.name这个system property(或SPRING_CONFIG_NAME环境变量)指定配置文件的主文件名,默认application

  • 设置spring.config.location这个system property(或SPRING_CONFIG_LOCATION环境变量) 指明加载的文件路径(e.g. a classpath resource or a URL).单独设置一个环境配置文件,此配置可以被system properties,环境变量,或命令行参数覆盖

无论程序运行于哪种environment配置下,Spring Boot总会按照上面描述的规则加载application.properties。如果有.yml后缀的yaml配置文件,也会一并加载进来。

Spring Boot的配置文件的log在DEBUG级别下会打印,在TRACE以上级别关闭打印。

使用短命令行参数覆盖

如果想使用--port=9000代替--server.port=9000覆盖默认的property属性,在application.properties文件使用占位符即可:

server.port=${port:8080}

这样也可以通过大写的环境变量PORT覆盖配置。

依赖环境的配置文件

依赖环境的配置文件可以起名application-${profile}.properties,这样spring boot通过-Dspring.profiles.activeSPRING_PROFILES_ACTIVE环境变量指定运行环境时就会加载对应的${profile}的配置文件。

Grails官方文档提及的方案

准确来说,Grails官方文档使用的方案是上述使用短命令行参数覆盖使用的方案(当然其他方案同样适用于Grails3,只不过官方文档没提)。

官方文档的范例如下:

production:
    dataSource:
        url: '${JDBC_CONNECTION_STRING}'

这里就代表这个dataSource.url的值希望通过system property(-DJDBC_CONNECTION_STRING命令行参数)或环境变量(JDBC_CONNECTION_STRING,环境变量可以覆盖默认properties官方文档没提)提供。并未提及实际还可以用'${JDBC_CONNECTION_STRING:DEFAULT_JDBC_STRING}'这种方式给定默认值。

对于gradle工程,官方提供的参考build.gradle配置文件:

bootRun {
    systemProperties = System.properties
}

test {
    systemProperties = System.properties
}

表示bootRun这个task(对应Grails的run-app)和test这个task(对应Grails的test-app)在运行的时候,将system properties传递给grails项目。

在gradle指定system properties的方法有两种:

  • 在gradle命令行上指定-Dproperty=value参数

  • gradle.properties文件中指定systemProp.property=value属性

参考资料

Grails3配置文档: http://docs.grails.org/latest...
Spring Boot配置文档: https://docs.spring.io/spring...

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读