redis在springboot中的源生使用方法
又是令人熟悉的 ****Template
- SpringBoot中Template是不需要手动
@Bean。类可以直接注入依赖
代码示例
spring.redis.host=192.168.171.131
spring.redis.port=6379
@SpringBootTest
class RedisSpringBoot01ApplicationTests {
@Autowired
private RedisTemplate<String, String> redisTemplate;
@Test
void contextLoads() {
RedisConnection connection = redisTemplate.getConnectionFactory().getConnection();
System.out.println(connection.ping());
System.out.println(redisTemplate.execute(RedisConnectionCommands::ping));
}
public String ping(){
return redisTemplate.execute((RedisCallback<String>) connection -> connection.ping());
}
}
其它用法


如何配置模板类,以及如何配置序列化
- 目标:让存进Redis中的对象实现序列化(Serializable),即使实体类没有继承S
erializable接口,所以自己更改模板类。
- 为什么可以自定义模板类,点开源码瞧一瞧

@Configuration
public class MyRedisConfig {
@Bean
@SuppressWarnings ( "all")
public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory factory) {
RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
template.setConnectionFactory(factory);
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
ObjectMapper om = new ObjectMapper();
om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
jackson2JsonRedisSerializer.setObjectMapper(om);
StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
template.setKeySerializer(stringRedisSerializer);
template.setHashKeySerializer(stringRedisSerializer);
template.setValueSerializer(jackson2JsonRedisSerializer);
template.setHashValueSerializer(jackson2JsonRedisSerializer);
template.afterPropertiesSet();
return template;
}
}
引入Utils工具类
bug收集


@Autowired和new 是两个世界的东西,一个在Spring中(IOC),一个独立在外