@ConditionalOnClass 注解
@ConditionalOnClass(com.xxxx.Client.class)
- 检查类路径是否存在某个类,如果存在,则加载当前配置;否则忽略
- 常用于 自动配置类 或 Bean 的按需注册,避免因缺少依赖导致启动失败
@ConditionalOnProperty 注解
@ConditionalOnProperty(prefix = "demo.local", name = "enable", havingValue = "true")
对应yml配置
demo:
local:
enable: true
@ConditionalOnMissingBean 注解
@ConditionalOnMissingBean(name = "xxxxEncryptor")
或
@ConditionalOnMissingBean(XxxxEncryptor.class)
- 当指定的 bean 名称或bean对象不存在Spring bean容器中时才会加载配置
@Primary注解
- 当 Spring 容器中存在多个相同类型的 Bean 时,
@Primary
会标记其中一个 Bean 作为默认优先注入的候选者
- 即被标记
@Primary
的会优先注入