Spring boot条件自动装配

接口Condition

实现接口Condition,可以指定在满足什么条件的情况下进行自动装配:

Spring boot条件自动装配_第1张图片

如果配置文件中 enableEncodingConverCondition的值为 true,则进行自动装配

Spring boot条件自动装配_第2张图片

Spring boot条件自动装配_第3张图片

以上两个类都是根据 file.encoding的内容判断是否需要自动装配。

下面演示如何使用:

Spring boot条件自动装配_第4张图片

请注意上面 @Conditional注解都有两个条件,必须同时满足才会自动装配。

如果需要测试这个测试,可以如下配置file.encoding:

Spring boot条件自动装配_第5张图片

@Conditional也可以在整个类上使用

Spring boot条件自动装配_第6张图片

spring boot自带的Condition所在的位置

Spring boot条件自动装配_第7张图片

spring boot自带的Condition——ConditionalOnBeanConditionalOnMissingBean

Spring boot条件自动装配_第8张图片

请注意,使用条件自动装配,不能依赖于托管给spring管理的bean,比如上面创建 Chopsticks的两个方法,当你交换一下顺序就会发现结果完全不同。

spring boot自带的Condition——ConditionalOnProperty

Spring boot条件自动装配_第9张图片

上面的例子中 ConditionalOnProperty配合 ConditionalOnBean一起使用。

spring boot自带的Condition——ConditionalOnMissingClassConditionalOnClass

Spring boot条件自动装配_第10张图片

ConditionalOnMissingClassConditionalOnClass可以共用。

你可能感兴趣的:(Spring boot条件自动装配)