Spring Profile 提供隔离部分配置的方法 并使它们仅仅在某些环境生效。通过@Component或@Configuration 配合 @Profile来实现。
@Configuration @Profile("production") public class ProductionConfiguration { // ... }
通常,你是通过设置环境中的spring.profiles.active属性来指定那些profiles生效。比如在application.properties中设置
spring.profiles.active=dev,hsqldb
或通过命令行设置等。
1、添加active profile
当多个命令同时设置spring.profiles.active属性值的时候,高权限的命令会获胜,也就是说,application.properties中对spring.profiles.active的设置会覆盖默认的,而命令行的会覆盖application.properties中的。
但通常对于profiles不是替换他们而是添加他们,spring.profiles.include属性作用就是添加profiles。SpringApplication同时提供了方法添加profiles,详情见setAdditionalProfiles()方法。
2、程序设定profiles
在项目启动之前执行SpringApplication.setAdditionalProfiles(…?),也可以通过ConfigurableEnvironment接口激活profiles。
3、Profiles配置文件
配置文件application.properties(或application.yml)和参照了@ConfigurationProperties注解的文件都被加载。(后面会详细介绍)
时间: 2024-10-14 13:17:59