前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot系列之外部配置用法简介

SpringBoot系列之外部配置用法简介

作者头像
SmileNicky
发布2019-11-12 16:44:23
5910
发布2019-11-12 16:44:23
举报
文章被收录于专栏:Nicky's blog

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/u014427391/article/details/102995991

SpringBoot系列之外部配置用法简介

引用Springboot官方文档的说法,官方文档总共列举了如下用法:

1、Devtools global settings properties on your home directory (~/.spring-boot-devtools.properties when devtools is active). 2、@TestPropertySource annotations on your tests. 3、properties attribute on your tests. Available on @SpringBootTest and the test annotations for testing a particular slice of your application. 4、Command line arguments. 5、Properties from SPRING_APPLICATION_JSON (inline JSON embedded in an environment variable or system property). 6、ServletConfig init parameters. 7、ServletContext init parameters. 8、JNDI attributes from java:comp/env. 9、Java System properties (System.getProperties()). 10、OS environment variables. 11、A RandomValuePropertySource that has properties only in random.*. 12、Profile-specific application properties outside of your packaged jar (application-{profile}.properties and YAML variants). 13、Profile-specific application properties packaged inside your jar (application-{profile}.properties and YAML variants). 14、Application properties outside of your packaged jar (application.properties and YAML variants). 15、Application properties packaged inside your jar (application.properties and YAML variants). 16、@PropertySource annotations on your @Configuration classes. 17、Default properties (specified by setting SpringApplication.setDefaultProperties).

Springboot官方文档应经将这种用法做了比较详细的描述:Springboot外部配置用法官方文档,所以本博客只简单介绍一下比较常用的

尚硅谷有位老师对这些用法进行梳理,整理出比较常用的几种用法:

这种外部配置的优先级按照从高到低的顺序排序如下图所示,优先级高的属性配置会覆盖优先级低的配置,而且存在互补配置的特性,对于这些特性可以参考我上篇博客:SpringBoot系列之配置文件加载位置

在这里插入图片描述
在这里插入图片描述

注意:

  • 命令行配置的方式 比如java -jar这种方式,多个属性之间用空格分开,properties里的属性基本都能用,用法是属性项=属性值这种方法,举个例子:
代码语言:javascript
复制
java -jar springboot-properties-config-0.0.1-SNAPSHOT.jar --server.port=8082 --server.context-path=/example
在这里插入图片描述
在这里插入图片描述

如果都通过命令行这种方法,一个属性一个属性的加,显然不太可行,所以可以在jar包所在的文件夹下面加个application.properties/application.yml,然后再通过命令启动,就可以自动加载配置文件里的配置

在这里插入图片描述
在这里插入图片描述
  • application.properties或者application.yml 对于application.properties或者application.yml配置文件可以对其进行归类,可以分为jar包外部的和内部的,也可以分为带${profile}的和不带${profile}的,profile的可以参考我上篇博客:Springboot系列之profile多环境配置用法简介

一般来说jar外部的配置优先级一般是高于jar包内部的的,profile的配置文件优先级也是高于不到profile的application.proerties/application.yml配置文件的,所以针对配置文件加载顺序优先级进行排序

jar外部配置文件被加载的优先级高于jar内部的,${profile}的配置文件被加载优先级高于没带${profile}的配置文件

  • jar包外部的application-${profile}.properties或者application-${profile}.yml
  • jar包内部的application-${profile}.properties或者application-${profile}.yml

  • jar包外部的application.properties或者application.yml
  • jar包内部的application.properties或者application.yml
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/11/10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档