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();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2017-10-12 ApexSql Log 数据库操作的后悔药
2017-10-12 SQL Pretty Printer不错的sql格式化工具