@Condition 作用
@Condition 可作用于方法或者类上,用于是否注册组件对象。
理解: 就是添加了这个注解,spring 会解析这个注解,然后判断当前注册的bean是否应该注册。
或者当前类是否应该注册!
@Condition 分析
1 | /** |
这里可能要涉及到一些注解相关的知识:
ElementType.TYPE 这里可以点进去看一下,官方的解释很好理解,:
可作用于 类,接口,包括注解(可用作混合注解),或者 枚举声明
/** Class, interface (including annotation type), or enum declaration */
ElementType.METHOD : 作用于方法声明
按照 @Condition 来分析参数默认只能填入一个 Condition 数组,尝试去看一下 Condition,发现是一个接口,如下:
1 | /** |
如何使用 @Condition ?
如下代码:
1 | /** |
核心其实就是我们要重写 Condition的 matches方法,然后返回是否需要加载就行了,这里所拿道德参数很关键,
metadata是源注解,是当前类的注解,你可以解析匹配某个注解返回
environment: environment 是运行环境,具体可研究代码
注解到类上面
1 | /** |
注解在方法上
1 | @Bean |
spring 是如何解析 @Condition 注解的,在什么时候解析的?
1 | /** |
- 本文作者: Cayden
- 本文链接: http://example.com/2020/10/23/@Condition注解的使用/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!