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

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


以上两个类都是根据
file.encoding的内容判断是否需要自动装配。
下面演示如何使用:

请注意上面
@Conditional注解都有两个条件,必须同时满足才会自动装配。
如果需要测试这个测试,可以如下配置file.encoding:

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

spring boot自带的Condition所在的位置

spring boot自带的Condition——ConditionalOnBean和ConditionalOnMissingBean

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

上面的例子中
ConditionalOnProperty配合ConditionalOnBean一起使用。
spring boot自带的Condition——ConditionalOnMissingClass和ConditionalOnClass

ConditionalOnMissingClass和ConditionalOnClass可以共用。
