接口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
可以共用。