SpringBoot开发【配置】外部配置加载顺序

187 阅读2分钟

「这是我参与2022首次更文挑战的第12天,活动详情查看:2022首次更文挑战」。

除了从内部properties文件或者yml文件配置,也可以从一些外部文件进行配置,下面就来简单说一下有哪些外部配置

SpringBoot外部配置

SpringBoot也可以从以下位置加载配置;优先级从高到低;高优先级的配置覆盖低优先级的配置,所有的配置会形成互补配置

  1. 命令行参数

我们使用package打包,然后在端口用命令运行时,默认使用工程里的配置文件。当运维时,我们如果修改工程的内部文件会很麻烦,我们可以通过用外部命令行的形式来修改配置文件,详细见上一篇

多个配置用空格隔开;--配置项=值

测试

测试

  1. 来自java:comp/env的INDI属性

  2. Java系统属性( System.getPropertes() )

  3. 操作系统环境变量

  4. RandomValuePropertySource配置的random.*属性值

由jar包外向jar包内寻找,高优先级覆盖低优先级

优先加载带profile

  1. jar包外部的pplcation-profile}.properties或application.yml(带spring,profile)配置文件

  2. jar包内部的aplicatiof-profle).properties或pplicatin.ym(带spring profile)配置文件

再来加载不带profile

  1. Jar包外部的pplication.propertles或apllcation.yml(不带spring,profile)配置文件

  2. jar包内部的application.propetes或pplcatin.ym(不带springprofil)配置文件

我们来试一下,把打好的jar包单独拿出来,放在一个文件加下,然后写一个properties文件,里面端口号为8087,与jar包放在同一个文件夹下,命令行运行,不用加其他命令 测试

测试我们发现端口号改变了

  1. @Configuration注解类上的@PropertySource

  2. 通过SpringAppiication.setDefaultProperties

还有一些配置方式平常不太用得到,详情参考官方文档