(忘各位大lao解答)SpringBoot的@ConditionalOnBean注解失效

大DL们请看这几行代码,启动类里边的@SpringBootApplication没有排除任何自动配置类,并且正确引入了spring-boot-starter-data-redis的依赖,但是在下边的示例代码中的@ConditionalOnBean(LettuceConnectionFactory.class)并不会生效😵,请知道的DL告知是什么问题 😩😩,我吐了.

/**
 * @author Yufire 淦!
 * @date 2021/8/20 17:34
 * @description 加载Y-Cache所需要的Bean
 */
@Slf4j
@Configuration
public class InitBeans {

 /**
     * 存在Redis连接工厂 初始化Redis操作模板
     *
     * @param redisConnectionFactory redis连接工厂
     */
    @Bean
    @ConditionalOnBean(LettuceConnectionFactory.class)
    public RedisTemplate<String, Object> yCacheRedisTemplate(LettuceConnectionFactory redisConnectionFactory) {
                  log.info("{} Loading...", SystemConstant.SYSTEM_NAME);
    }
}

@ConditionalOnBean(LettuceConnectionFactory.class)注解的意思应该是当LettuceConnectionFactory这个Class类型的bean存在时,实例化RedisTemplate实例。如果没有生效的话,你可以从Spring的ApplicationContext上下文中检查下LettuceConnectionFactory类型的bean是否存在。

在配置类中定义Bean,如果使用@ConditionalOnBean注解依赖的Bean是通过配置类触发解析的,则执行结果依赖配置类加载顺序。要看看LettuceConnectionFactory.class和配置类加载的顺序