今天整合Springboot+redis做測試的時候發現了
stringRedisTemplate報空指針錯誤,原因是注入時候stringRedisTemplate就是null
查了一下後面發現是容器沒有啓動,單純的測試是無法注入的.要在測試類上加上
@RunWith(SpringRunner.class)
@SpringBootTest
這樣子啓動的話是啓動spring容器來執行測試
加上後就會啓動Spring ,這算是一個小小的坑。
此外,如果Value設置的是Object,使用@AutoWired會報錯,需要使用@Resource,這兩個註解的區別在前者是根據類型後者
是根據名字,具體區別自行查資料。
@Resource
private RedisTemplate<String,Object> redisTemplate;
此外,還要給類實現 Serializable 否則會序列化失敗。
org.springframework.data.redis.serializer.SerializationException: Cannot serialize; nested exception is org.springframework.core.serializer.support.SerializationFailedException: Failed to serialize object using DefaultSerializer; nested exception is java.lang.IllegalArgumentException: DefaultSerializer requires a Serializable payload but received an object of type [com.dazhi.uid.modules.user.entity.UserEntity]