As we know,我们在测试中可能需要频繁切换SpringBoot的配置文件,这个时候我们如何切换配置文件才方便呢?

命令行参数,还是显然还是太麻烦,特别是单元测试本地bean的时候。所以,小弟来给各位献上一计,通过Springboot容器的启动原理(其实我也不懂,但是切入点就在这里).我们需要实现该接口,Spring内置的容器在启动时会调用该接口的这个唯一方法,这个貌似是函数式接口(伪的,没什么用)

import org.springframework.test.context.ActiveProfilesResolver;

/**
 * @author Kwai
 * @date 2018/5/24 15:07
 */
public class ProfileResolver implements ActiveProfilesResolver {
    @Override
    public String[] resolve(Class<?> testClass) {
        String activeProfiles = System.getProperty("spring.profiles.active");
        return new String[] {activeProfiles != null ? activeProfiles : "liangyin"};
    }
}

这时候,我们就将自定义的属性解析器实现了,下一步只需要引入其到启动类即可


请无视第四个注解,依赖插件的。这个时候就就可以搭配Junit进行单元测试了。

注意,默认是以application.yml来启动的。若你的其他配置文件是以application-xxx.yml的形式来命名的,只需要将我的liangyin改成你的xxx即可.这也是springboot的规范

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐