在程序开发中,为了提供可维护性,我们通常将可能变化的配置项以参数的形式存放在配置文件中,这样在环境或条件发生变化时,就不需要重新打包,部署应用了。在Grails3程序中如何读取这些定义在配置文件中的配置项呢?
因为Grails的核心其实时Spring, 所以基本上我们可以采用Spring中的方法来完成这个任务,只是具体的语法上可能会稍有不同。
假设要在程序中读取 application.yml 文件中有一个配置项:numbers
1 | max: |
通过 GrailsApplication 中的Config属性获得
直接上示例代码 :)
1 | import grails.core.GrailsApplication |
也可以在读取的时候指定配置项的数据类型和默认值,Grails会自动帮助转换, 如:
1 | Integer maxLineNumbers = config.getProperty('max.line.numbers', Integer) |
也可以指定配置项是必须存在,否则抛出异常。
1 | Integer maxLineNumbers = config.getRequiredProperty('max.line.numbers', Integer) |
GrailsConfigurationAware接口
实现 GrailsConfigurationAware 接口, 该接口需要实现 setConfiguration 方法, 示例代码:
1 | import grails.config.Config |
使用 @Value 注释
使用依赖注入(DI), 示例代码:
1 | import org.springframework.beans.factory.annotation.Value |
如果需要取的配置不存在,则抛出异常。当然,也可以为配置提供默认值
1 | import org.springframework.beans.factory.annotation.Value |