在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容器,或者才启用此配置