在开发spring boot时,程序会在不同的环境运行,比如开发、测试、生产,不同的环境会有不同的配置,每次打包都需要修改配置文件,很麻烦。profile的作用就是用来动态配置切换的。
1)配置方式
1.多profile文件方式
- 分别创建dev,test,pro(开发,测试,生产环境)文件。(一般情况下这么配置)
- 激活配置文件。在application.properties文件里,spring.profie.active=*,比如dev、pro。
2.yml多文档的方式
用 --- 来区分配置文件。
2)激活方式
1.上述为配置文件方式
2.虚拟机参数
-D表示虚拟机,虚拟机参数配置会覆盖配置文件配置。
3.命令行参数
--表示命令行,命令行参数也会覆盖配置文件配置。
注:虽然后面两个是依赖于idea开发工具,但是可以将其打包成jar包然后在win命令窗口运行,且可以使用两种参数,运行相应的端口。
内部配置加载顺序
spring boot程序启动时,会从以下位置加载配置文件:
1.file:./config/ 当前项目下的/config目录下
2.fiel:./ 当前项目的根目录
3.classpath:/config/ classpath的/config目录
4.classpath:/ classpath的根目录
上文排列顺序就是加载顺序,高优先级配置的属性会生效。高优先级的属性会覆盖低优先级的。
之前在resource里的application.propertices就属于4,在resource下建个config包就属于3.一样的测试下1.2.的优先级。
外部配置加载顺序
在spring官网上可查看17个外部配置的优先级。