Spring Boot基于特定条件创建Bean例子 : ConditionalOnClass_conditionalonclass 示例-程序员宅基地

技术标签: Spring Boot 自动配置  Spring Boot  

结合使用注解@ConditionalOnClass和@Bean,可以仅当某些类存在于 classpath 上时候才创建某个Bean:

@Configuration
public class ConditionOnClassConfig {
    

    @Bean
    @ConditionalOnClass(value={
    java.util.HashMap.class})
    public A beanA(){
    
	    // 仅当类 java.util.HashMap 存在于 classpath 上时才创建一个bean : beanA
	    // 注意这里使用了 @ConditionalOnClass 的属性value,
        return new A(); 
    }
    
    @Bean
    @ConditionalOnClass(name="com.sample.Dummy")
    public B beanB(){
    
   	    // 仅当类 com.sample.Dummy 存在于 classpath 上时才创建一个bean : beanB
	    // 注意这里使用了 @ConditionalOnClass 的属性 name,
        return new B(); 
    }        
}
  • 什么时候使用 name,什么时候使用 value ?
    • name : 不确定指定类在classpath
    • value : 确定指定类在 classpath

Use the name attribute in case if you want to specify the class name and you are not sure whether the classes will be available on the classpath and use value when the classes are available on the classpath.

注解ConditionalOnClass官方API文档

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/andy_zhang2007/article/details/81284875

智能推荐

ImportError: No module named six,已解决-程序员宅基地

文章浏览阅读2.9k次。问题如题目所示。在解决问题之前,我们先来看看six这么模块是什么。six: 一个专门用来兼容 Python 2 和 Python 3 的库。它解决了诸如 urllib 的部分方法不兼容, str 和 bytes 类型不兼容等问题。问题:我是在调用pandas时出现的这个问题。在搜索解决办法时,我发现很多人在导入Matlibplot等其他库时也遇到了同样的问题,出错页面如下:解决办法:下载six..._importerror: no module named six

我的博客今天2岁104天了,我领取了…-程序员宅基地

文章浏览阅读45次。我的博客今天2岁104天了,我领取了徽章.2011.06.09,我在新浪博客安家。2011.06.09,我写下了第一篇博文:《看懂这些故事 你做人就很成功了》。2011.06.09,我上传了第一张图片到相册。至今,我的博客共获得174次访问。这些年,新浪博客伴我点点滴滴谱写生活! ...

C/C++ 找出最大素数 算法_c++找最大素数-程序员宅基地

文章浏览阅读5.6k次,点赞2次,收藏7次。24.【中学】找出最大素数小明在中学学习了什么是素数。素数是指一个只能被1和它本身整除的数,在数论中占有重要的研究地位,在当代密码学中也被广泛应用。输入:取值范围输出:该范围内的最大素数#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int input = 0, answer = 0; scanf("%d", &input); _c++找最大素数

【最新】IDEA 2021.3 使用_janf_config.txt-程序员宅基地

文章浏览阅读8.1k次。IDEA 2021.3之前的版本都可以采用重试脚本的方式来使用IDEA,最近IDEA官方发布了新款2021.3的版本,原作者不在维护升级重置脚本,遂提供了新型使用方法,如下下载JAR包地址:https://github.com/pengzhile/ja-netfilter/releases编写配置文件指定你自己的目录创建此文件:janf_config.txt,最佳实践为把刚刚的Jar包和这个文件放置在同一目录下,就不用二次指定这个文件了# jb 的 janf_config.txt 配置文件[D_janf_config.txt

在Windows10\11的WSL2中使用图形化应用Chrome和搜狗拼音输入法_win11 wsl2 图形化-程序员宅基地

文章浏览阅读1.4k次,点赞24次,收藏18次。在Windows的WSL2中使用图形化应用Chrome,并配置中文界面和输入法。_win11 wsl2 图形化

python绘制Loss和Acc曲线+读取txt和log文件_python 提取txt中包含loss的行的数据-程序员宅基地

文章浏览阅读5.5k次,点赞4次,收藏40次。log文件如下所示:代码def read_log(filename): fp=open(filename) for line in fp.readlines(): train_loss=line[-27:-18] train_acc=line[-8:] with open('test.txt','a') as fp2: fp2.write(train_loss+train_acc) fp.close()_python 提取txt中包含loss的行的数据

随便推点

Duplicate Symbol链接错的原因总结和解决方法_duplicate symbol:-程序员宅基地

文章浏览阅读1.3w次。Duplicate Symbol链接错的原因总结和解决方法 duplicate symbol(符号复制,即有相同的文件名)是一种常见的链接错误,不像编译错误那样可以直接定位到问题的所在。但是经过一段时间的总结,发现这种错误总是有一些规律可以找的。例如,我们有如下的最简单的两个类代码:// ClassA.h#import @interfa_duplicate symbol:

Android取消RecyclerView、ListView、ScrollView、HorizontalScrollView滑动到边缘闪现灰白色水波纹动画_android recyclerview去除下拉时波纹-程序员宅基地

文章浏览阅读6.1k次。Android取消RecyclerView、ListView、ScrollView、HorizontalScrollView滑动到边缘闪现灰白色水波纹动画标准的Android RecyclerView、ListView、ScrollView、HorizontalScrollView滑动到边缘,会闪现灰白色水波纹动画,以这样大的动画效果提示用户已经滑动到边缘,没法再滑动了。对于这种增强体验是一个很好..._android recyclerview去除下拉时波纹

javaFx新建弹窗页面并传值_javafx窗口传值-程序员宅基地

文章浏览阅读2.6k次。由于之前图省事在弹窗Controller类中用static定义变量接受原始页面传值导致被sonar校验,特地研究了一下javaFx向弹窗传值的方式。 方式有两种 1、直接传一个controler实例过来,后面弹窗页面如果有用到的话直接可以从controller中获取。 2、传需要的属性到工具类的setControllerFactory中,直接赋值给新建的窗口controller。 我的创建窗口工具类如下,关键在于lorder.setControl..._javafx窗口传值

Linux+libusb开发用户USB无驱通讯_libusb 无驱-程序员宅基地

文章浏览阅读1.1k次。项目上需要将一个自己开发的设备通过USB接口 连接到Linux系统或Android系统的设备,然后通过发送命令来控制我们的设备操作。要求做到“即插即用”,不需要再安装驱动,于是想到用libusb库来做。 在网上搜索了一些关于libusb的使用方法,写篇文章记录下开发过程,主要解决3个问题:① libusb是什么?② libusb有什么用?③ libusb怎么用?1. li_libusb 无驱

cmake:LINK : error LNK2001: 无法解析的外部符号 WinMainCRTStartup_cmake rtk编译报错无法解析的外部符号-程序员宅基地

文章浏览阅读5.8k次。正在设计的一个C/C++混合语言项目是用cmake来管理编译的,用cmake生成的一个Visual Studio工程(c++)在编译时报了个错: LINK : error LNK2001: 无法解析的外部符号 WinMainCRTStartup好是莫名其妙的问题,之前是没有这个问题的,反复查看了GIT提交记录,发现问题出在cmake脚本中 原本项目的定义是这样的,语言指定C,CXX..._cmake rtk编译报错无法解析的外部符号

Win10 Cortana 搜索框字体颜色_win10搜索框字体变成绿色-程序员宅基地

文章浏览阅读3k次。不知什么原因,cortana搜索框的字体颜色突然变成白色,搜索框背景也是白色,这就直接导致看不到自己输入的内容。怎么解决呢?找了一圈也没找到啥好的办法。google了一下才找到办法。据说这个是微软服务器那边的bug。解决办法如下:进入开始 --》 设置 --》时间和语言区域和语言–》国家和地区–》也门注销登入,恢复正常修改区域回中国继续happy吧。..._win10搜索框字体变成绿色

推荐文章

热门文章

相关标签