Spring Boot外部属性文件(带配置文件)?

时间:2017-03-31 18:02:41

标签: spring spring-mvc spring-boot yaml

我想要完成的是在我的application.yml文件上指定一个直接位于类路径上的目录(在/ resources下)。我希望能够有类似的东西:

 spring:     
  datasource:
    driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
  profiles:
    active: dev
  config:
    location: C:\\app\\configs\\

然后在c:\ settings \ configs \ location下,我想根据正在加载的配置文件有多个配置文件,例如:

c:\app\configs:
application-dev.yml
application-staging.yml
application-production.yml

使用此方法,IDE将始终默认为application-dev.yml。当我通过gradle构建应用程序并在传递命令行参数时运行它时,我可以指定配置文件,从而加载适当的文件。理想情况下,能够做到这一点:

  

java -jar -Dspring.profiles.active = staging appliation.jar

我见过的所有示例或答案都显示了如何仅从命令行传递所有这些配置选项,而不是使用

  

spring.config.location

  

spring.profiles.active

来自默认配置文件(例如:application.yml)。优先考虑如上所述进行此设置以实现最小部署。

感谢您提出任何建议/帮助!

1 个答案:

答案 0 :(得分:1)

你可以尝试一下,并提供你的基本配置" bootstrap.yml"而不是" application.yml"。之后,spring boot应根据配置路径中选择的配置文件选择正确的配置。

对我来说,如果您不想使用命令行参数,这似乎是最接近您的用例的解决方案。