多Profile文件
我们在主配置文件编写的时候,文件名可以是 application-{profile}.properties/yml
默认使用application.properties的配置;
①properties文件的多环境支持(yml文件与此相同)
application.properties
server.port=8080
spring.profiles.active=pro //此处为pro时 打包后启动jar包 默认就是pro配置(除非指定环境启动 java -jar ***.jar --spring.profiles.test)
application-dev.properties
server.port=8081
application-test.properties
server.port=8082
application-forecast.properties
server.port=8083
application-pro.properties
server.port=8084
②yml单文件多文档块方式的多环境(我试了试不行,最好还是用properties多文件 和 yml多文件的形式)
server:
port: 8080
spring:
profiles:
active: pro
---
#开发环境
server:
port: 8081
spring:
profiles: dev
---
#测试环境
server:
port: 8082
spring:
profiles: test
---
#准生产环境
server:
port: 8083
spring:
profiles: forecast
---
#生产环境
server:
port: 8084
spring:
profiles: pro
激活指定Profile的方式
①在配置文件中指定 spring.profiles.active=dev (maven打包的时候是按照此处的配置来打的)
#properties配置文件
spring.profiles.active=pro
#yml配置文件
server:
port: 8080
spring:
profiles:
active: pro
②idea命令行参数或虚拟机参数
③启动jar包时指定环境
java -jar ***.jar --spring.profiles.active=pro
配置文件加载位置
一、项目内配置文件优先级(1->2->3->4)
1、file:./config/ ( 项目根路径下的config文件夹)
2、file:./ (项目根路径)
3、classpath:/config/ (类路径下的config文件夹)
4、classpath:/ (类路径)
注意:
①如果同一个目录下,有application.yml也有application.properties,默认先读取application.properties。
②如果同一个配置属性,在多个配置文件都配置了,默认使用第1个读取到的,后面读取的不覆盖前面读取到的。
③创建SpringBoot项目时,一般的配置文件放置在“项目的resources目录下”
④先后加载顺序:若application 和bootstrap 在同一目录下:bootstrap先加载 application后加载
二、项目外部配置文件
1、项目打包好以后,我们可以使用命令行参数的形式,来改变想改变的几个参数,直接在启动命令后添加启动参数,如果有多个配置项,可以用空格分开。
java -jar springboot-configuration.jar --server.port=8088 --server.servlet.context-path=/spring
2、如果参数数量过多,我们就要考虑配置文件了,我们在启动项目的时候可以用spring.config.location来指定配置文件的新位置。
java -jar springboot-configuration.jar --spring.config.location=F:/application.properties