
redisConnectionFactory 被标红

打印此时的BeanDefinition的数量为70
首先看下项目结构

可以看到我的Template包不在bootdataredis包下,所有boot程序启动类是扫不到RedisConfig的,也就是说RedisConfig不被Spring容器管理,而RedisConnectFactory是Spring管理的bean,肯定是报错的

改变项目结构,把RedisConfig的包作为子包放在启动类的下面,此时不再报错了
BeanDefinition的数量为71,这个增加的BeanDefinition是我们的RedisConfig类
,为什么不是增加的72(RedisConfig和定义的redisTemplate)的原因在于
RedisAutoConfig类里面

第32行定义了如果Spring容器中没有redisTemplate的bean存在则加载默认的redisTemplate bean到Spring容器中
而我们之前以及定义过redisTemplate的bean了所以没有加载默认的bean。
而之前我们的RedisConfig没有扫到,所以之前加载了默认的redisTemplate的bean到spring容器中
为了验证这一点,我们讲自定义的redisTemplate 的bean 名称该成aaa

如图此时执行结果为72,这时spring容器中有我们自定义的redisTemplate bean
也有默认的redisTemplate bean
923

被折叠的 条评论
为什么被折叠?



