Profile介绍
Profile是Spring在不同环境的使用的时候提供的不同的配置方案,在Spring源码中对于Profile的解析也是放在第一位的。Spring配置解析的时候第一个判断的就是Profile,通过这种方式可以进行快速的参数切换。
1、多个profile文件
在配置文件编写的时候可以通过如下的方式进行设置,设置对应的环境参数就可以使用这个而配置方式。
2、多profile文档块application-dev.properties、application-prod.properties
在yml配置文件中有一个概念就是文档块,可以通过— 三个短横线来实现这个文档块。
spring:profiles:active: dev---spring:profiles:devserver:port: 8081---spring:profiles: prodserver:port: 8082
3、激活方式
使用命令行参数的形式 --spring.profile.active=dev配置文件 spring.profile.active=devJVM参数 -Dspring.profile.active=dev
配置文件件加载位置
SpringBoot启动的时候时候会扫描默认的application.properties文件或者是application.yml文件,作为全局的配置文件。
file:./config/ 文件路径下file:./ 文件路径的当前路径classpath:/config/ 类路径classpath:/ 类路径的根路径
按照以上的优先级顺序从高到低开始加载配置文件,所有的位置都会被扫描一边,优先级高的配置文件会把优先级低的配置文件内容给覆盖掉。
当然也可以通过下面这种方式来改变配置文件默认位置
spring.config.location=./config
在项目打包完成之后,可以通过命令行参数的形式通过启动想的时候来指定配置文件的新位置;指定文件和加载的配置文件形成了一个互补配置。可以进行功能的扩展。
外部配置文件的加载顺序
加载顺序
这些是来自官方文档的中文翻译
命令行参数
应用在打包的时候,通过打包完成之后还需要有新的配置,就可以在启动java -jar命令的时候进行新的配置文件的设置。java系统属性操作系统环境变量使用RandomValuePropertySource的随机数jar包外部的的application-{profile}.properties配置文件jar包内部的application-{profile}.properties配置那文件
这个所遵循着从外到内的加载方式,进行加载。jar包外部的application.properties文件jar包内部的application.properties文件通过@PropertySource进行指定的通过SpringApplication.setDefaultProperties设置的属性。
优先级从高到低,优先级之间形成一个互补的操作。对于详细的配置加载源,可以参考官方文档进行使用。