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

 更新时间:2021年09月09日 10:01:36   作者:ccor2002  
在springboot项目中,也可以使用yml类型的配置文件代替properties文件。接下来通过本文给大家分享Springboot配置文件的使用,感兴趣的朋友一起看看吧

默认的打包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.yml及classpath:/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章节。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • 如何把第三方服务注册到spring项目容器中

    如何把第三方服务注册到spring项目容器中

    这篇文章主要为大家介绍了如何把第三方服务注册到spring项目容器中,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • Spring Boot(四)之使用JWT和Spring Security保护REST API

    Spring Boot(四)之使用JWT和Spring Security保护REST API

    这篇文章主要介绍了Spring Boot(四)之使用JWT和Spring Security保护REST API的相关知识,需要的朋友可以参考下
    2017-04-04
  • Java泛型的继承和实现操作示例

    Java泛型的继承和实现操作示例

    这篇文章主要介绍了Java泛型的继承和实现操作,结合实例形式分析了java泛型类的继承以及泛型接口的实现相关操作技巧,需要的朋友可以参考下
    2019-08-08
  • springmvc如何使用map接收参数

    springmvc如何使用map接收参数

    这篇文章主要介绍了springmvc如何使用map接收参数的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • java对接微信支付之JSAPI支付(微信公众号支付)

    java对接微信支付之JSAPI支付(微信公众号支付)

    这篇文章主要给大家介绍了关于java对接微信支付之JSAPI支付(微信公众号支付)的相关资料,微信JSAPI支付是近年来非常流行的一种支付方式,它使用了微信支付的SDK和demo来实现支付接口的对接,需要的朋友可以参考下
    2023-07-07
  • MyBatis-Plus常见面试题和答案大全

    MyBatis-Plus常见面试题和答案大全

    Mybatis-Plus是一个基于Mybatis的增强工具,它简化了Mybatis的开发流程,提供了许多实用的功能,如自动生成代码、分页查询、条件构造器、性能分析等,这篇文章主要给大家介绍了关于MyBatis-Plus常见面试题和答案的相关资料,需要的朋友可以参考下
    2023-06-06
  • Java实现支付对接常用加密方式的示例代码

    Java实现支付对接常用加密方式的示例代码

    这篇文章主要为大家详细介绍了Java如何实现支付对接时常用加密方式,文中的示例代码讲解详细,对我们学习Java有一点帮助,需要的可以参考一下
    2023-02-02
  • Java实现的Base64加密算法示例

    Java实现的Base64加密算法示例

    这篇文章主要介绍了Java实现的Base64加密算法,结合实例形式分析了Java实现的base64编码转换相关使用方法及操作注意事项,需要的朋友可以参考下
    2018-04-04
  • spring mvc实现文件上传并携带其他参数的示例

    spring mvc实现文件上传并携带其他参数的示例

    本篇文章主要介绍了spring mvc实现文件上传并携带其他参数的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Struts2开发环境搭建 附简单登录功能实例

    Struts2开发环境搭建 附简单登录功能实例

    这篇文章主要介绍了Struts2开发环境搭建,为大家分享一个简单登录功能实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11

最新评论