如何在SpringBoot中动态切换你的配置文件(Profile)

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的规范

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot,有多种方式可以切换配置。以下是一些常见的方法: 1. 使用不同的application.properties/application.yml文件 在Spring Boot应用程序,可以使用application.properties或application.yml文件来配置应用程序。通过使用不同的文件名,可以轻松地切换不同的配置。例如,可以创建一个名为application-dev.properties或application-dev.yml的文件来设置开发环境的配置,创建一个名为application-prod.properties或application-prod.yml的文件来设置生产环境的配置。 2. 使用命令行参数 可以在运行Spring Boot应用程序时通过命令行参数来切换配置。例如,可以使用--spring.profiles.active参数来指定要使用的配置文件。例如,可以使用以下命令来指定使用名为“dev”的配置文件: java -jar myapp.jar --spring.profiles.active=dev 3. 使用环境变量 可以使用环境变量来切换配置。例如,可以设置SPRING_PROFILES_ACTIVE环境变量来指定要使用的配置文件。例如,在Linux可以使用以下命令来设置环境变量: export SPRING_PROFILES_ACTIVE=dev 4. 使用注解 可以使用@Profile注解来为不同的配置文件指定不同的配置类。例如,可以为开发环境和生产环境分别创建不同的配置类,并使用@Profile注解来指定使用哪个配置类。例如: @Profile("dev") @Configuration public class DevConfig { // Dev configuration here } @Profile("prod") @Configuration public class ProdConfig { // Prod configuration here } 使用以上方法可以灵活地切换配置,适应不同的环境需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值