条件化Bean注册
是Spring框架中的一种机制,通过在Bean定义上添加@Conditional
注解,可以根据特定的条件来决定是否注册该Bean。
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
@Configuration
public class AppConfig {
@Bean
@Conditional(MyCondition.class)
public MyBean myBean() {
return new MyBean();
}
}
通过@Conditional(MyCondition.class)
注解来标记myBean()方法,表示只有满足MyCondition条件时才会注册这个Bean。MyCondition是一个自定义的条件类
,需要实现Condition接口
并重写matches()
方法来定义具体的条件逻辑。
import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.type.AnnotatedTypeMetadata;
public class MyCondition implements Condition {
@Override
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
// 在这里定义条件逻辑,返回true表示注册Bean,返回false表示不注册Bean
return true; // 这里简单地返回true,表示始终注册Bean
}
}