spring boot 动态切换application-xx.properties配置文件

在spring boot 中如果想使用application-xx.properties配置文件有3中办法

1:在application.properties配置文件中配置spring.profiles.active=xx,xx和application-xx.properties中对应

2:在spring boot启动类中 使用SpringApplication实例的setAdditionalProfiles("xx")来进行设置

3:在spring boot test时可以使用 @ActiveProfiles(value={"xx"})来进行设置,如果想使用动态的可以实现ActiveProfilesResolver接口使用@ActiveProfiles(resolver = ProfilesResolver.class)注解实现

public class ProfilesResolver implements ActiveProfilesResolver {

	@Override
	public String[] resolve(Class testClass) {
		Calendar cal = Calendar.getInstance();
		cal.setTime(new Date());
		int week = cal.get(Calendar.DAY_OF_WEEK) - 1;// 从星期日开始
		if (week < 5 && week > 0) {
			return new String[] { "pro" };
		} else {
			return new String[] { "dev" };
		}
	}
}
spring boot 中@Profile注解也比较常用一般和@Bean,@Configation一起使用,表示在@Profile注解指定的开发环境此bean才注入到springr容器,或者才启用此配置


你可能感兴趣的:(spring-boot,spring,boot,动态切换配置文件,@ActiveProfile)