阿丹-有话说:
第二种多环境的配置选择解决方案,这个更加的灵活没在配置方面都选择了一种yml的书写方式。
原理:
在Spring Boot中,spring.profiles.active
属性用于指定当前应用程序应激活哪个环境配置。当Spring Boot应用启动时,它会读取应用的配置文件(通常是application.properties或application.yml格式),查找这个属性来决定加载哪些特定于环境的额外配置。
具体原理如下:
-
多环境配置:Spring Boot支持为不同的环境创建多个配置文件。例如,我们可以有
application-test.yml
、application-dev.yml
、application-prod.yml
等,分别对应测试环境、开发环境和生产环境的配置。 -
激活配置:通过设置
spring.profiles.active
属性的值,可以指定要激活哪一个环境配置。如上所示配置,将active
属性设置为test
意味着应用将在启动时加载application-test.yml
中的配置,同时也会合并主配置文件application.yml
或application.properties
中的通用配置。 -
配置加载顺序:Spring Boot在启动时按照一定的优先级加载这些配置文件。默认情况下,先加载
application.yml
或application.properties
,然后根据spring.profiles.active
指定的环境加载相应的配置文件,并覆盖通用配置中相同键的值。 -
命令行参数与环境变量:除了在配置文件中直接指定外,还可以通过命令行参数(如
-Dspring.profiles.active=test
)或者系统环境变量的方式来动态切换激活的环境配置。
总结起来,spring.profiles.active=test
的作用就是指示Spring Boot框架在运行时加载并使用application-test.yml
中的配置信息,从而实现应用在不同环境下的平滑切换。
整体配置文件结构:
配置文件的前缀不用动,后缀改掉就可以。
application.yml中的选择配置文件的重要语句。
spring:profiles:
# active: formaldocker
# active: dockeractive: test
使用注意:
这个方式需要自己书写三种正确的配置文件yml,一些公用的配置可以写在公共的application.yml中,这样就可以完成了。