2024-12-18  阅读(92)
版权声明:本文为博主付费文章,严禁任何形式的转载和摘抄,维权必究。 本文链接:https://www.skjava.com/mianshi/baodian/detail/6761267335

回答

Spring 支持根据特定条件来动态地创建 Bean,主要有三种方式:

  1. 使用 @Conditional 注解:通过条件化的方式在特定条件下创建 Bean。
  2. 使用 @Profile 注解:根据不同的环境条件来选择性地创建 Bean。
  3. 基于配置文件的条件:根据外部配置文件中的属性值来控制 Bean 的创建。

这里第一种方案是最常见和优雅的方式。

详解

使用 @Conditional 注解

@Conditional 支持条件式创建 Bean,它可以根据复杂条件来决定是否创建一个 Bean。比如:

@Configuration
@ConditionalOnProperty(prefix = "distributed.lock",value = "redis",havingValue = "1")
public class RedisDistributedLock {
}

如果配置文件中 distributed.lock.redis = 1 ,则加载该 Bean。