springBoot 可以在 一个application.yml文件中 存放多套配置(生产环境下的端口等配置、测试环境下的端口等配置……)
每套配置之间用 --- 隔开
每套配置用 spring: profiles: 命名 以达到区分的目的
可以在第一套配置中用 spring: profiles: active: 选择运行时用哪套配置
- 但是最终,在以jar包形式启动SpringBoot项目时:可以通过 --spring.profiles.active=dev 来选择配置文件
可以尝试把(--spring.profiles.active=dev)加到 服务器的 .sh (可执行文件中),这样可以实现:在本地用8080端口,而项目部署到服务器上时自动换成80端口 ,配置如果更多或许还会更强
https://blog.csdn.net/swq463/article/details/86617236
application.yml 文件存放位置的加载优先级:
每个位置的application.yml文件都会被加载,如果是相同的配置,例如都配置了端口,那么会高优先级覆盖;
如果不是相同的配置,例如其中一个配置了访问路径(server.context-path=/wechat)那么就会“ 互补 ”;
springBoot 可以在 不同的application.yml文件中 存放多套配置
在打包好项目后,可以指定使用哪个位置的配置文件 :
java -jar wechat-1.jar --spring.config.location=D:/appplicaton.properties
- springBoot项目在打包的时候,只会把 main 目录下的文件打包,而test、以及自己新建的config等目录是不会被打到jar包里的
如果不同命令行指定,可以创建一个和jar同目录的application.properties文件(jar外部的配置文件),
不带任何的参数,就能被加载
在命令行能把所有的配置都覆盖掉(port、context-path、properties.active)
优先加载带profile的,再来加载不带profile的,都是由jar包外向jar包内进行寻找