美文网首页
根据配置加载实现类@Conditional

根据配置加载实现类@Conditional

作者: n油炸小朋友 | 来源:发表于2021-03-26 14:11 被阅读0次

    业务场景

    项目原先需要调用公司其他团队开发的存储服务,现在需要在使用一套代码的情况下根据配置,切换使用原来的存储服务和自己开发的存储服务

    实现

    • 1.配置文件添加配置
      新的方案的配置文件添加:
      source=local

    • 2.新的实现类继承旧的类,并在类上添加注解@Conditional(LocalCondition.class),并且重写因为业务而需要调整的方法

    LocalCondition类作用是判断配置文件中source的值是否是local,是的话返回true,配合@Conditional注解使用,作用就是source的值是local时,就把该类加载到容器中。

    public class LocalCondition implements Condition {
    
        @Override
        public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
            String local = context.getEnvironment().getProperty(LocalUtil.LOCAL_FLAG_COFING);
            return LocalUtil.LOCAL.equals(local);
        }
    }
    
    • 3.旧的类添加注解@Conditional(ServiceCondition.class)

    ServiceCondition类略

    相关文章

      网友评论

          本文标题:根据配置加载实现类@Conditional

          本文链接:https://www.haomeiwen.com/subject/bfpjhltx.html