The injection point has the following annotations: - @org.springframework.beans.factory.annotation.

weixin_43950168發表於2020-12-11

啟動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");

相關文章