有些定时任务,或者多个RabbitMQ中某个RabbitMQ在某些情况下不用使用,可以使用@Conditional,决定某个component是否被加载。
@Conditional({MyCondition.class})可以在类或者方法上。
在public class MyCondition implements Condition 类里,@Value不能使用。如:
@Value(“${test}”)
private String test;
需使用conditionContext的environment:
@Override
public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) {
Environment environment = conditionContext.getEnvironment();
return Boolean.parseBoolean(environment.getProperty(“test”));
}