SpringBoot-多环境命令行启动参数设置

推荐先阅读Spring全家桶

多环境启动命令格式

带参数启动SpringBoot

java -jar springboot.jar --server.port=88 --spring.profiles.active=test

防坑:执行package之前先clean

打包可能乱码,解决方案:

image-20220816191519547

属性加载优先顺序

从上到下,由低到高

https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config

以下内容皆为谷歌翻译:

Spring Boot使用非常特殊的PropertySource顺序,旨在允许合理地覆盖值。属性按以下顺序考虑(较低项目的值覆盖早期项目):

  1. 默认属性(通过设置SpringApplication.setDefaultProperties指定)。
  2. @PropertySource annotations on your @Configuration classes. Please note that such property sources are not added to the Environment until the application context is being refreshed. This is too late to configure certain properties such as logging.* and spring.main.* which are read before refresh begins.
  3. 配置数据(如application.properties文件)。
  4. A RandomValuePropertySource that has properties only in random.*.
  5. OS环境变量。
  6. Java系统属性(System.getProperties())。
  7. 来自java:comp/envJNDI属性。
  8. ServletContextinit参数。
  9. ServletConfiginit参数。
  10. 来自SPRING_APPLICATION_JSON的属性(嵌入在环境变量或系统属性中的内联JSON)。
  11. 命令行参数。
  12. properties属性在您的测试中。在@SpringBootTest和测试应用程序特定片段的测试注释上可用。
  13. @TestPropertySource测试上的注释。
  14. 当devtools处于活动状态时,Devtools$HOME/.config/spring-boot目录中的全局设置属性