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包内进行寻找