Spring Boot 指定外部启动配置文件

默认的打包spring boot项目会把配置文件打到jar包中,有时候在测试时需要想修改某些配置项。这时除了可以用启动参数覆盖配置项以外,还可以指定外部的配置文件覆盖已有配置文件。在需要修改较多配置参数的时候会很方便。

使用spring boot默认的配置文件路径

默认的查找路径如下:

  1. file:./config/
  2. file:./
  3. classpath:/config/
  4. classpath:/

会依次从1-4的位置查找加载application.yml或者是application.properties(这个配置文件名可以通过spring.config.name修改),比如./config/application.yml会覆盖./application.ymlclasspath:/config/applicaiton.yml中的同名配置。

即最简单的方法是放置一个配置文件到jar包同层目录下,或是同层目录下的config子目录下,启动jar包即可加载配置文件实现配置项的覆盖。

指定外部的配置文件

当然可以通过修改启动参数spring.config.location的值来指定加载目录或是加载文件:

$ java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties

这样不会去默认位置加载配置文件,而是加载类路径下的default.propertiesoverride.properties文件,override.properties中的同名配置会覆盖default.properties的。

如果指定的路径是以/结尾则是目录配置,会去目录下找配置文件。这个参数默认的配置为:

classpath:/,classpath:/config/,file:./,file:./config/

可以对照上文中的默认查找路径,是从右到左覆盖的。

特定配置

在开发、测试、发布过程中,这三个场景比较固定,通常会定义三份不同的配置application-{profile}.yml,在使用时通过profile参数来切换。

applicaiton-dev.yml
applicaiton-test.yml
applicaiton-prd.yml

启动时,通过指定spring.profiles.active参数来切换配置文件

java -jar myproject.jar --spring.profiles.active=test

当然指定特定配置也满足配置文件覆盖的规则,但是一旦指定的spring.config.location不是目录,而是具体文件时,这个参数切换就失去作用了。

具体更多的扩展配置可以参考 spring boot的官方文档Externalized Configuration章节

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值