实现 redisTemplate 的自动装配
可以看到 Redis Auto Config 的 自动装配 redis template
copy一份 到自己的 配置类中
这下就可以开始我们的自动装配工作了
一下分别提供了两种,
First : Autoried 一个redisTemplate,对其进行后续装配
Second:重写自动装配到方法,自己构造 redisTemplate
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection") @Configuration public class RedisTemplateConfig { @Bean(name = "redisTemplate") public RedisTemplate<String, Object> redisTemplate (RedisConnectionFactory factory) { RedisTemplate<String, Object> template = new RedisTemplate<>(); template.setConnectionFactory(factory); Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance,ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.WRAPPER_ARRAY); jackson2JsonRedisSerializer.setObjectMapper(om); StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); template.setKeySerializer(stringRedisSerializer); template.setHashKeySerializer(stringRedisSerializer); template.setValueSerializer(jackson2JsonRedisSerializer); template.setHashValueSerializer(jackson2JsonRedisSerializer); template.afterPropertiesSet(); return template; } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection") @Configuration public class RedisTemplateConfig { @Autowired public RedisTemplateConfig ( RedisTemplate redisTemplate) { Jackson2JsonRedisSerializer<Object> objectJackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class); ObjectMapper mapper = new ObjectMapper(); mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance,ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.WRAPPER_ARRAY); objectJackson2JsonRedisSerializer.setObjectMapper(mapper); redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(objectJackson2JsonRedisSerializer); redisTemplate.afterPropertiesSet(); } }
这里的这个注解,@SuppressWarnings(“SpringJavaInjectionPointsAutowiringInspection”)
去disable IDEA 的inspection ;
Application.yml for redis
很简单,没有用到reids 的线程池
后续 TODO
1 2 3 4 5 spring: redis: port: 6379 host: 127.0 .0 .1 database: 0
RedisUtil
关于redis 的工具类 ,暂时不需要 redisTemplate的 API 够用