Grails3中的拆分配置
我目前正在将现有的Grails2.5.x应用程序迁移到Grails3.1 在以前的grails版本中,我真正喜欢的是使用Grails3中的拆分配置,grails,spring-boot,configuration,Grails,Spring Boot,Configuration,我目前正在将现有的Grails2.5.x应用程序迁移到Grails3.1 在以前的grails版本中,我真正喜欢的是使用grails.config.locations选项在多个文件上模块化配置文件,例如: Config.groovy App.groovy Logging.groovy SpringSecurity.groovy Quartz.groovy ... 由于Grails3现在基于SpringBoot,所以它使用了不同的配置方法。但我无法找到从多个文件加载配置的方法 我已经读过spri
grails.config.locations
选项在多个文件上模块化配置文件,例如:
Config.groovy
App.groovy
Logging.groovy
SpringSecurity.groovy
Quartz.groovy
...
由于Grails3现在基于SpringBoot,所以它使用了不同的配置方法。但我无法找到从多个文件加载配置的方法
我已经读过spring中的spring.config.location
选项,但它似乎并没有达到我想要的效果。它似乎在另一个位置搜索application.groovy/application.yml,但这不会让我返回分割的配置文件
我也不喜欢这个选项必须设置为环境参数。应用程序应该在不配置额外的环境变量或参数的情况下工作
这引出了我的问题:
- 是否有可能恢复以前grails版本的配置可能性
- grails或spring boot中是否有其他方法实现类似的功能
应用程序.yml
中的默认值-我们只包括针对特定部署的不同密钥
一个可能的问题是不能用这种方式覆盖数据库配置。我们通过将数据库配置设置放入环境变量(例如,export-database\u-URL=foo
、export-database\u-USERNAME=baz
和export-database\u-PASSWORD=bar
)中,然后在配置中使用占位符来解决这个问题,如下所示:
environments:
production:
dataSource:
url: ${DATABASE_URL}
username: ${DATABASE_USERNAME}
password: ${DATABASE_PASSWORD}
这个数据库配置部分有点粗糙,仔细想想,“3个yaml文件合并为一个”的全部原因并没有得到很好的论证,但这是我们所能想到的最好的方法。现在有一个Grails 3插件,它模仿了Grails 2中处理配置文件的方式: