您可以
@Conditional如下所示使用。
- 在
application.properties
介绍物业时要说kafka.enabled
。 - 注释
OrderReceiveEventConfiguration
与@Conditional(PropertyCondition.class)
- 根据
kafka.enabled
值即。true
( 对于正常运行 )或false
( 对于测试 ),OrderReceiveEventConfiguration
将分别拾取或忽略而不更改代码。
如果需要更多信息,请在评论中告知。
除主要
@conditional注释外,还有一组类似的注释可用于不同情况。
上课条件
的
@ConditionalOnClass和
@ConditionalOnMissingClass注解允许基于特定类的存在或不存在要被包括配置。
例如,何时
OObjectDatabaseTx.class将其添加到依赖项,并且没有
OrientWebConfigurerbean,我们将创建配置器。
@Bean@ConditionalOnWebApplication@ConditionalOnClass(OObjectDatabaseTx.class)@ConditionalOnMissingBean(OrientWebConfigurer.class)public OrientWebConfigurer orientWebConfigurer() { return new OrientWebConfigurer();}豆条件
的
@ConditionalOnBean和
@ConditionalOnMissingBean注解允许基于特定豆的存在或不存在要被包括的bean。您可以使用value属性按类型指定bean,或使用name按名称指定bean。搜索属性允许您限制
ApplicationContext搜索bean时应考虑的层次结构。
当我们检查是否没有定义的bean时,请参见上面的示例。
物业条件
该
@ConditionalOnProperty注释允许基于Spring的环境属性,包括配置。使用prefix和name属性指定应检查的属性。默认情况下,将存在的任何不等于属性
false匹配。您还可以使用
havingValue和
matchIfMissing属性创建更高级的检查。
@ConditionalOnProperty(value='somebean.enabled', matchIfMissing = true, havingValue="yes")@Bean public SomeBean someBean(){}资源条件
该
@ConditionalOnResource注释允许被包括配置仅当特定资源是否存在。
@ConditionalOnResource(resources = "classpath:init-db.sql")
Web应用程序条件
的
@ConditionalOnWebApplication和
@ConditionalOnNotWebApplication注解允许根据应用是否是一个“web应用程序”被包括配置。
@Configuration@ConditionalOnWebApplicationpublic class MyWebMvcAutoConfiguration {...}SpEL表达条件
该
@ConditionalOnexpression注释允许基于SpeI位表达式的结果被包括配置。
@ConditionalOnexpression("${rest.security.enabled}==false")


