@Bean @SuppressWarnings("unchecked") public RedisTemplate redisTemplate(@Qualifier("redisConnectionFactory") RedisConnectionFactory redisConnectionFactory) { RedisTemplate redisTemplate = new StringRedisTemplate(); redisTemplate.setConnectionFactory(redisConnectionFactory); 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); redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setHashKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(jackson2JsonRedisSerializer); redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer); redisTemplate.afterPropertiesSet(); return redisTemplate; }
/** * Creates a new {@link Jackson2JsonRedisSerializer} for the given target {@link Class}. * * @param type */ public Jackson2JsonRedisSerializer(Class<T> type) { this.javaType = getJavaType(type); }
@Bean public ReactiveRedisTemplate<String, Post> reactiveRedisTemplate(ReactiveRedisConnectionFactory factory) { return new ReactiveRedisTemplate<String, Post>( factory, RedisSerializationContext.fromSerializer(new Jackson2JsonRedisSerializer(Post.class)) ); }
@Bean public ReactiveRedisTemplate<String, Post> reactiveRedisTemplate(ReactiveRedisConnectionFactory factory) { return new ReactiveRedisTemplate<String, Post>( factory, RedisSerializationContext.fromSerializer(new Jackson2JsonRedisSerializer(Post.class)) ); }
@Bean @SuppressWarnings("unchecked") public RedisTemplate redisTemplate(@Qualifier("redisConnectionFactory") RedisConnectionFactory redisConnectionFactory) { RedisTemplate redisTemplate = new StringRedisTemplate(); redisTemplate.setConnectionFactory(redisConnectionFactory); 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); redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setHashKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(jackson2JsonRedisSerializer); redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer); redisTemplate.afterPropertiesSet(); return redisTemplate; } }
@Test @RedisAvailable public void testInt3015ExplicitSerializer() throws Exception { final String queueName = "si.test.testRedisQueueOutboundChannelAdapter2"; final RedisQueueOutboundChannelAdapter handler = new RedisQueueOutboundChannelAdapter(queueName, this.connectionFactory); handler.setSerializer(new Jackson2JsonRedisSerializer<Object>(Object.class)); RedisTemplate<String, ?> redisTemplate = new StringRedisTemplate(); redisTemplate.setConnectionFactory(this.connectionFactory); redisTemplate.afterPropertiesSet(); handler.handleMessage(new GenericMessage<Object>(Arrays.asList("foo", "bar", "baz"))); Object result = redisTemplate.boundListOps(queueName).rightPop(5000, TimeUnit.MILLISECONDS); assertNotNull(result); assertEquals("[\"foo\",\"bar\",\"baz\"]", result); handler.handleMessage(new GenericMessage<Object>("test")); result = redisTemplate.boundListOps(queueName).rightPop(5000, TimeUnit.MILLISECONDS); assertNotNull(result); assertEquals("\"test\"", result); }
/** * Creates a new {@link Jackson2JsonRedisSerializer} for the given target {@link Class}. * * @param type */ public Jackson2JsonRedisSerializer(Class<T> type) { this.javaType = getJavaType(type); }
/** * 设置Serializer * * @param template RedisTemplate */ private void setSerializer(StringRedisTemplate template) { Jackson2JsonRedisSerializer<Object> 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); template.setValueSerializer(jackson2JsonRedisSerializer); }
@Bean public RedisTemplate<Object, Employee> empRedisTemplate( RedisConnectionFactory redisConnectionFactory) throws UnknownHostException { RedisTemplate<Object, Employee> template = new RedisTemplate<Object, Employee>(); template.setConnectionFactory(redisConnectionFactory); Jackson2JsonRedisSerializer<Employee> jsonRedisSerializer = new Jackson2JsonRedisSerializer<Employee>(Employee.class); template.setDefaultSerializer(jsonRedisSerializer); return template; } }
/** * Creates a new {@link Jackson2JsonRedisSerializer} for the given target {@link Class}. * * @param type */ public Jackson2JsonRedisSerializer(Class<T> type) { this.javaType = getJavaType(type); }
private <T> Jackson2JsonRedisSerializer<T> jsonSerializer(final Class<T> clazz, final ObjectMapper mapper) { final Jackson2JsonRedisSerializer<T> result = new Jackson2JsonRedisSerializer<>(clazz); result.setObjectMapper(mapper); return result; } }
@Bean public RedisTemplate<Object, Employee> empRedisTemplate( RedisConnectionFactory redisConnectionFactory) throws UnknownHostException { RedisTemplate<Object, Employee> template = new RedisTemplate<Object, Employee>(); template.setConnectionFactory(redisConnectionFactory); Jackson2JsonRedisSerializer<Employee> jsonRedisSerializer = new Jackson2JsonRedisSerializer<Employee>(Employee.class); template.setDefaultSerializer(jsonRedisSerializer); return template; } // Employee
private Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer() { Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class); jackson2JsonRedisSerializer.setObjectMapper(objectMapper()); return jackson2JsonRedisSerializer; }
@Bean public RedisTemplate<Object, Department> deptRedisTemplate( RedisConnectionFactory redisConnectionFactory) throws UnknownHostException { RedisTemplate<Object, Department> template = new RedisTemplate<Object, Department>(); template.setConnectionFactory(redisConnectionFactory); Jackson2JsonRedisSerializer<Department> jsonRedisSerializer = new Jackson2JsonRedisSerializer<Department>(Department.class); template.setDefaultSerializer(jsonRedisSerializer); return template; }
private RedisSerializer<String> valueSerializer() { 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); return jackson2JsonRedisSerializer; }
@Bean public RedisTemplate<String,String> redisTemplate(RedisConnectionFactory cf){ RedisTemplate<String,String> redisTemplate=new RedisTemplate<String,String>(); redisTemplate.setConnectionFactory(cf); redisTemplate.setKeySerializer(redisTemplate.getStringSerializer()); redisTemplate.setKeySerializer(new Jackson2JsonRedisSerializer<CustomerCreatedEvent>(CustomerCreatedEvent.class)); redisTemplate.setDefaultSerializer(new Jackson2JsonRedisSerializer<CustomerCreatedEvent>(CustomerCreatedEvent.class)); return redisTemplate; } }
/** * json序列化 * @return */ @Bean public RedisSerializer<Object> jackson2JsonRedisSerializer() { //使用Jackson2JsonRedisSerializer来序列化和反序列化redis的value值 Jackson2JsonRedisSerializer serializer = new Jackson2JsonRedisSerializer(Object.class); ObjectMapper mapper = new ObjectMapper(); mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); serializer.setObjectMapper(mapper); return serializer; }
@Bean ReactiveRedisOperations<String, Object> redisOperations(ReactiveRedisConnectionFactory factory) { Jackson2JsonRedisSerializer<Object> serializer = new Jackson2JsonRedisSerializer<>(Object.class); RedisSerializationContext.RedisSerializationContextBuilder<String, Object> builder = RedisSerializationContext .newSerializationContext(new StringRedisSerializer()); RedisSerializationContext<String, Object> context = builder.value(serializer).build(); return new ReactiveRedisTemplate<>(factory, context); }
private void setSerializer(StringRedisTemplate template) { 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); template.setValueSerializer(jackson2JsonRedisSerializer); } }
@Bean public ParticipantRedisTemplate participantRedisTemplate(JedisConnectionFactory factory) { final ParticipantRedisTemplate template = new ParticipantRedisTemplate(); template.setConnectionFactory(factory); template.setKeySerializer(new StringRedisSerializer()); template.setValueSerializer(new Jackson2JsonRedisSerializer<Participant>(Participant.class)); return template; }