当前位置: 首页 > news >正文

哈尔滨网站制作公司/seo免费诊断联系方式

哈尔滨网站制作公司,seo免费诊断联系方式,企业年报系统官网入口,建设银行官网网站人事之前看到这篇博客,写ConditionalOnClass的用法,自己实践了一下,感觉有点问题,原文如下: https://blog.csdn.net/lucyTheSlayer/article/details/80430912 于是自己更正了一下,代码结构如下: 贴上…

  之前看到这篇博客,写ConditionalOnClass的用法,自己实践了一下,感觉有点问题,原文如下:

https://blog.csdn.net/lucyTheSlayer/article/details/80430912

 

于是自己更正了一下,代码结构如下:

 

贴上完整的代码:

程序入口:ConditionalDemoApplication:
@SpringBootApplication
public class ConditionalDemoApplication implements CommandLineRunner {@Autowiredprivate Van van;public static void main(String[] args) {SpringApplication.run(ConditionalDemoApplication.class, args);}@Overridepublic void run(String... args) throws Exception{van.fight();}
}

Van.java

@Service
public class Van {@Autowiredprivate Fighter fighter;public void fight(){System.out.println("van:boy next door,do you like 玩游戏");fighter.fight();}
}

Fighter.java及其实现类:

public interface Fighter {void fight();
}
@Service
public class Babana implements Fighter {
@Override
public void fight(){
System.out.println("Banana: 自由的气息,蕉迟但到");
}
}
@Service
public class Billy implements Fighter {
public void fight(){
System.out.println("Billy:吾乃新日暮里的王,三界哲学的主宰。");

}
}

VanConfig:

@Configuration
public class VanConfig {
@Bean
@ConditionalOnBean(Billy.class)
public Fighter fighter(){
return new Billy();
}

@Bean
@ConditionalOnMissingBean
public Fighter fighter2(){
return new Babana();
}
}

1、运行程序,输入结果如下:

 

2、如果将Billy Bean的代码注释掉:

@Configuration
public class VanConfig {
/*@Bean
@ConditionalOnBean(Billy.class)
public Fighter fighter(){
return new Billy();
}*/

@Bean
@ConditionalOnMissingBean
public Fighter fighter2(){
return new Babana();
}
}

重新运行,输入结果如下:

 

 

3、或者,我们将Billy上的@Service注解注释掉,让springboot扫描不到该类:

//@Service
public class Billy implements Fighter {public void fight(){System.out.println("Billy:吾乃新日暮里的王,三界哲学的主宰。");}
}

同时恢复VanConfig里的配置:

@Configuration
public class VanConfig {@Bean@ConditionalOnBean(Billy.class)public Fighter fighter(){return new Billy();}@Bean@ConditionalOnMissingBeanpublic Fighter fighter2(){return new Babana();}
}

再次运行,输入结果如下(与第2次试验的效果相同):

 

 

4、在第3个试验的基础上,我们再做一个试验,把@ConditionalOnBean(Billy.class)注释掉:

@Configuration
public class VanConfig {@Bean
//    @ConditionalOnBean(Billy.class)public Fighter fighter(){return new Billy();}@Bean@ConditionalOnMissingBeanpublic Fighter fighter2(){return new Babana();}
}

重新运行,结果如下:

这说明,在不添加ConditionalOnBean条件时,Billy的注入已不再受任何约束的

结论:

1、@ConditionalOnBean(xxx.class)就是为了判断 xxx.class是否存在,并已注释了springboot容器里了;
2、@ConditionalOnMissingBean 则是在第一点不存在的情况下起作用;

当然,我们还继续作一些测试,比如,去掉Babana上的@Service等,再看一看效果会怎样。
好了,分享完毕,该回去干活了...

转载于:https://www.cnblogs.com/luchangjiang/p/10593036.html

http://www.lbrq.cn/news/826525.html

相关文章:

  • 网站建设服务领域/公司网站优化
  • 怎么用新浪云做网站/网站优化排名软件网
  • 专业网站制作公司/商丘搜索引擎优化
  • 网站运营计划书/企业培训机构有哪些
  • 利为汇网站建设/国内最新消息新闻
  • 摄影网站建立/网络营销公司怎么注册
  • 金融网站可以做公安备案/推广关键词
  • 会展网站建设情况/html网页制作代码大全
  • linux系统网站建设/百度搜索热度指数
  • o2o网站建设如何/快速搭建网站的工具
  • 简单的网站/免费网站建设哪家好
  • 交通设施东莞网站建设/网络营销方案案例
  • 部门做网站优点/淘宝网店的seo主要是什么
  • 有做公司网站/上海快速排名优化
  • 深度开发/网店seo关键词
  • 老网站不要了做新站需要怎么处理/网络舆情管控
  • 常州网站开发公司/上海网络推广公司网站
  • 重庆网站开发公/网络游戏营销策略
  • 做网站要会写代码吗/济南做网站公司哪家好
  • 成都企业建站系统/今天新闻头条最新消息
  • 建站系统破解/网络推广怎么做?
  • 国内做博彩网站代理/石家庄seo结算
  • 洛阳网红打卡地/seo详细教程
  • 南京做网站/高级seo培训
  • 网站滚动效果怎么做/肇庆百度快速排名
  • 网站开发两端对齐底行左对齐/长沙官网seo推广
  • 网站必须做可信认证吗/百度应用
  • 安卓开发和网站开发/响应式模版移动优化
  • 有免费可以做的网站吗/在线识别图片
  • 河南公司网站可以做天津备案吗/网络营销案例实例
  • ESXi6.7硬件传感器红色警示信息
  • Qwen3-8B 与 ChatGPT-4o Mini 的 TTFT 性能对比与底层原理详解
  • 基于dcmtk的dicom工具 第六章 StoreSCU 图像发送
  • 数据统计模块后端架构解析:从Controller到SQL的ECharts数据对接实践
  • 算法提升之字符串练习-02(字符串哈希)
  • 使用Pytorch进行数字手写体识别