目录
- 问题
- 作用
- spring.profiles.active
- spring.profiles.include
- 总结
问题
我们经常在项目的application.yml中看到这样的配置,如下:
在 Spring Boot 中,spring.profiles.active 和 spring.profiles.include 属性都是用来配置 profile 的。
作用
spring.profiles.active
用于指定当前所选的 profile,可以通过命令行参数、环境变量、JVM 系统参数等方式来指定。在 application.yml 或 application.properties 文件中,也可以使用 spring.profiles.active 属性来指定默认的 profile。当指定了 spring.profiles.active 属性时,Spring Boot 会使用该属性值来决定加载哪个 profile 的配置文件,例如 application-prod.yml 或 application-dev.yml 等。如果未指定该属性值,则 Spring Boot 会默认加载 application.yml 或 application.properties 文件中的配置。
spring.profiles.include
用于在一个 profile 的配置文件中引入其他 profile 的配置文件。它可以在 application.yml 或 application.properties 文件中的任意位置定义。当指定了 spring.profiles.include 属性时,Spring Boot 会先加载该属性所引用的 profile 的配置文件,然后再加载当前 profile 的配置文件,进行属性的覆盖和合并。可以使用逗号分隔多个 profile 名称,表示引入多个 profile 的配置文件。如果出现同名属性,当前 profile 中的属性优先级高于被引入 profile 中的属性。
总结
在 Spring Boot 应用中,spring.profiles.active 属性用于指定当前所选的 profile,而 spring.profiles.include 属性用于在当前 profile 中引入其他 profile 的配置。两者都是用来管理 profile 的属性,但作用是有所不同的。