springbean的加载控制

1.通过improtselector接口控制

根据任意条件确认是否加载bean
复制代码
public class MyImportSelector implements ImportSelector {@
    @Override
    public String[] selectImports(AnnotationMetadata importingClassMetadata) {
        try {
            Class <? > clazz = Class.forName("com.itheima.ebean.Mouse");
            if (clazz != null) {
                return new String[] {
                    "com.itheima.bean.Cat"
                };
            }
        } catch (ClassNotFoundException e) {
            return new String[0];
        }
        return null;
    }
}
复制代码

2.使用@Conditional注解的派生注解设置各种组合条件控制bean的加载

复制代码
public class SpringConfig {
  
   @Bean
   @ConditionalOnClass(Mouse.class)
    public Cat tom() {
        return new Cat();
    }
}

//未匹配指定类
public class SpringConfig {
   @Bean
   @ConditionalOnClass(Mouse.class)
   @ConditionalOnMissingClass("com.itheima.bean.Wolf")
    public Cat tom() {
        return new Cat();
    }
}

//匹配指定类型的bean
@Import(Mouse.class)
public class SpringConfig {
    @Bean
    @ConditionalOnBean(Mouse.class)
    public Cat tom() {
        return new Cat();
    }
}
@Import(Mouse.class)
public class SpringConfig {
@Bean
@ConditionalOnBean(name = "com.itheima.bean.Mouse")
    public Cat tom() {
        return new Cat();
    }
}
复制代码

 

posted @   桃花雪  阅读(98)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2017-10-12 ApexSql Log 数据库操作的后悔药
2017-10-12 SQL Pretty Printer不错的sql格式化工具
点击右上角即可分享
微信分享提示