问题九、集成Redis使用stringRedisTemplate
2023-03-08 本文已影响0人
ButICare_b72d
先上错误使用代码:
![](https://img.haomeiwen.com/i18296654/8129086670983e4b.png)
![](https://img.haomeiwen.com/i18296654/d4cb10117b27be28.png)
正确调用方式:
![](https://img.haomeiwen.com/i18296654/2a63a7822170f37a.png)
![](https://img.haomeiwen.com/i18296654/0ca8ba8c18ce4f0b.png)
问题修复总结:
1. StringRedisTemplate的包裹对象同样需要使用@Resource方式获取才可以正确使用
2. 同样尝试了网上的方式,使用一个RedisUtils包裹RedisService,无论是通过new的方式还是通过@Resource的方式,都不可以获得StringRedisTemplate,甚至使用@Resource的方式连RedisService对象都是null
3. 通过2的实验,盲猜一波SpringBoot生成注入对象是一个连贯动作,也就是说会先生成RedisService的对象,然后生成StringRedisTemplate,并且持有StringRedisTemplate,所以当new一个RedisService时,无法关联持有已生成的StringRedisTemplate对象,并且@Resource注入对象的实际为项目启动时(已验证),不会二次调用,所以StringRedisTemplate为null