ConditionalOnMissingBean注解的作用与使用
@ConditionalOnMissingBean注解
@ConditionalOnMissingBean,它是修饰bean的一个注解。
主要实现的是,当你的bean被注册之后,如果再注册相同类型的bean,就不会成功,它会保证你的bean只有一个,即你的实例只有一个,当你注册多个相同的bean时,会出现异常,以此来告诉开发人员。抛出的异常如图:
使用方法
该注解的用法如下:
1 | |
代码演示
1 | |
以上这段代码运行起来就会抛异常,因为在aapper1中使用了注解@ConditionalOnMissingBean并表明了注入的类是 AMapper.class,而下面还有一个返回是 AMapper 的Bean。这就会抛出异常,因为注解是不允许有多个返回同样类型的Bean存在。
当我们把 @ConditionalOnMissingBean(AMapper.class) 去掉之后,bean可以注册多次,那么我注入的Bean会是什么?这个时候可以使用@AutoWried注解和@Qualifier来指定一个Bean来实现注入。
但是如果不使用这两个注解的话,这时需要用的@Primary来确定你要哪个实现;一般来说,对于自定义的配置类,我们应该加上@ConditionalOnMissingBean注解,以避免多个配置同时注入的风险。
1 | |
这样就可以来明显的区分注入的时候会优先选择哪一个了。
ConditionalOnMissingBean注解的作用与使用
https://sunshinechen.cn/2020/07/28/@ConditionalOnMissingBean注解的作用与使用/