1. 首页
  2. 课程学习
  3. Java
  4. Spring@Conditional注解使用示例

Spring@Conditional注解使用示例

上传者: 2025-05-27 19:37:16上传 ZIP文件 13.94MB 热度 2次

Spring 里的@Conditional注解,是那种你用过一次就会上瘾的功能。它能帮你按条件去加载 bean,写配置的时候就像开了外挂。举个例子,如果你只想在环境变量里开了my.service.enabled的时候才加载某个 bean,那它就合适,代码也不复杂,用起来挺顺手的。

实际开发中你会用到一些更方便的注解,比如@ConditionalOnClass@ConditionalOnMissingBean这些,Spring Boot 里用得贼多,基本是写自动配置的标配。嗯,如果你搞过 Starter 开发,那你肯定见过。

这段示例代码就比较实用,自己写条件类,实现Condition接口,在matches()里做判断。比如下面这样:

static class ExampleCondition implements Condition {
  @Override
  public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
    return context.getEnvironment().getProperty("my.service.enabled", Boolean.class, false);
  }
}

你在 bean 那边加上@Conditional(ExampleCondition.class)就行了,简单又清晰。

配置类也能用@Conditional,整包 bean 都能一键控制,挺适合按模块开关服务的场景。如果你做多环境部署或者组件化的系统,这招可以少掉不少麻烦。

如果你对这块感兴趣,推荐你顺手看看Spring Boot 中 Conditional 和自动配置实例详解,还有其他几篇也挺有料的。

下载地址
用户评论