Spring 条件注入注解
对于一些不常使用的相关注解的使用说明
-
@ConditionalOnMissingBean
使用范围:用于修饰Bean对象
作用:使得多个相同的bean可以实现同时存在于代码中,运行的时候不会报错
使用场景:在进行对象注册的时候,如果发现该注解对应的bean(name对应的对象)存在的时候,则不注册当前注解的对象,如果不存在则注册当前注解的对象。 -
@ConditionalOnBean
使用范围:用于修饰bean
作用:与@ConditionalOnMissBean刚好相反,用于实现进行在某种bean存在时需要联动注册对象的时候使用
使用场景:在进行对象注册的时候,如果发现该注解给定的bean(name对应的对象)存在的时候,则注册当前注解的对象,如果不存在则不注册当前注解的对象。 -
@ConditionalOnClass
与@ConditionalOnBean的作用一致,差异在于使用类对象进行判断 -
@ConditionalOnMissingClass
与@ConditionalOnMissingBean的作用一致,差异在于使用类对象进行判断 -
@ConditionalOnProperty
使用范围:用于修饰bean
作用:配合配置文件的配置参数,进行条件化的判断是否注册对象
使用场景:使用prefix参数指定配置文件中指定前缀的参数,使用name指定对应的变量,使用havingValue指定具体的值。如果不指定havingValue默认使用true或是false进行逻辑判断,值为true或是"true"的时候才会注册对应的对象