接口Condition
實(shí)現(xiàn)接口Condition,可以指定在滿足什么條件的情況下進(jìn)行自動裝配:

如果配置文件中
enableEncodingConverCondition的值為true,則進(jìn)行自動裝配


以上兩個(gè)類都是根據(jù)
file.encoding的內(nèi)容判斷是否需要自動裝配。
下面演示如何使用:

請注意上面
@Conditional注解都有兩個(gè)條件,必須同時(shí)滿足才會自動裝配。
如果需要測試這個(gè)測試,可以如下配置file.encoding:

@Conditional也可以在整個(gè)類上使用

spring boot自帶的Condition所在的位置

spring boot自帶的Condition——ConditionalOnBean和ConditionalOnMissingBean

請注意,使用條件自動裝配,不能依賴于托管給spring管理的bean,比如上面創(chuàng)建
Chopsticks的兩個(gè)方法,當(dāng)你交換一下順序就會發(fā)現(xiàn)結(jié)果完全不同。
spring boot自帶的Condition——ConditionalOnProperty

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

ConditionalOnMissingClass和ConditionalOnClass可以共用。