这篇文章主要介绍了Spring Boot指定外部启动配置文件的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
默认的打包spring boot项目会把配置文件打到jar包中,有时候在测试时需要想修改某些配置项。这时除了可以用启动参数覆盖配置项以外,还可以指定外部的配置文件覆盖已有配置文件。在需要修改较多配置参数的时候会很方便。
默认的查找路径如下:
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.properties
和override.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 Boot指定外部启动配置文件的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。