发布网友 发布时间:2022-03-25 00:42
共1个回答
热心网友 时间:2022-03-25 02:11
通过注解实现,常用来实现满足条件执行的有@ConditionalOnXXX注解,比如:@ConditionalOnBean,@ConditionalOnMissingBean等等。
这类条件注解可以使用在方法上,也可以使用在类上,用在类上时,通常是@EnableXXX类型的注解,本质上没有发生变化。用在方法上时,表示满足条件就执行该方法;用在类上时,表示满足条件就加载某个类,在我们自定义配置时时使用得比较多。
Spring Boot中常用的条件注解有:
(1)@ConditionalOnBean,表示:存在某个bean
(2)@ConditionalOnMissingBean,表示:不存在某个bean
(3)@ConditionalOnClass,表示:存在某个类
(4)@ConditionalOnMissingClass,表示:不存在某个类
(5)@ConditionalOnProperty,表示:存在某个属性
(6)@ConditionalOnResource,表示:存在某个资源
(7)@ConditionalOnCloudPlatform,表示:cloud环境
(8)@ConditionalOnWebApplication,表示:web运用环境。
接下来使用@ConditionalOnWebApplication注解举例,代码如下图,表示如果是web环境,就注入自定义的视图解析器
这里不一一做介绍,仅仅列举了常用的8个,其他条件注解和详细的用法,可以参考官方文档
Spring Boot条件注解文档