启动Springboot项目失败。Error Description:
Field “redisTemplate” in com.example.controller.HttpController required a bean of type ‘org.springframework.redis-core.ReidsTemplate’ that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
Action:
Consider defining a bean of type 'org.springframework.redis-core.ReidsTemplate ’ in your configuration.
但是看了bean的注入是没有问题的。如下自动注入:
@Autowired
redisTemplae<String LIst> RedisTemplate;
思考:这个报错不是RedisTemplate的jar包导入的问题;
是向IOC容器中注入redisTemplate对象时产生的错误。因此尝试将声明时的泛型去掉:
@Autowired
redisTemplae RedisTemplate;
后再此启动项目,正常启动。
总结:在使用@Autowired自动注入,特别是被注入的对象类型是导入的第三方Class或接口,非自定义的接口时,不要擅自添加泛型。。极容易产生上面的报错。可以使用类型强转代替泛型的使用:
List<ProjectVo> list = (List<ProjectVo>) redisTemplate.opsForValue().get("hotProjectList");