|
|
@@ -3,10 +3,12 @@ package com.weblux.launchredis.config;
|
|
|
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
|
|
import com.fasterxml.jackson.annotation.PropertyAccessor;
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
+import com.weblux.launchredis.test.User;
|
|
|
import org.springframework.context.annotation.Bean;
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
import org.springframework.data.redis.connection.ReactiveRedisConnectionFactory;
|
|
|
import org.springframework.data.redis.core.ReactiveRedisTemplate;
|
|
|
+import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
|
|
|
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
|
|
|
import org.springframework.data.redis.serializer.RedisSerializationContext;
|
|
|
import org.springframework.data.redis.serializer.StringRedisSerializer;
|
|
|
@@ -37,9 +39,36 @@ public class ReactiveRedisConfig {
|
|
|
return builder.build();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Configures a {@link ReactiveRedisTemplate} with {@link String} keys and a typed
|
|
|
+ * {@link Jackson2JsonRedisSerializer}.
|
|
|
+ */
|
|
|
@Bean
|
|
|
- public ReactiveRedisTemplate<String, Object> reactiveRedisTemplate(ReactiveRedisConnectionFactory connectionFactory) {
|
|
|
- return new ReactiveRedisTemplate<>(connectionFactory,redisSerializationContext());
|
|
|
+ public ReactiveRedisTemplate<String, User> reactiveJsonUserRedisTemplate(
|
|
|
+ ReactiveRedisConnectionFactory connectionFactory) {
|
|
|
+
|
|
|
+ var serializer = new Jackson2JsonRedisSerializer<User>(User.class);
|
|
|
+ RedisSerializationContext.RedisSerializationContextBuilder<String, User> builder = RedisSerializationContext
|
|
|
+ .newSerializationContext(new StringRedisSerializer());
|
|
|
+
|
|
|
+ var serializationContext = builder.value(serializer).build();
|
|
|
+
|
|
|
+ return new ReactiveRedisTemplate<>(connectionFactory, serializationContext);
|
|
|
}
|
|
|
+ @Bean
|
|
|
+ public ReactiveRedisTemplate<String, Object> reactiveRedisTemplate(ReactiveRedisConnectionFactory factory) {
|
|
|
+ RedisSerializationContext<String, Object> serializationContext = RedisSerializationContext
|
|
|
+ .<String, Object>newSerializationContext(new StringRedisSerializer())
|
|
|
+ .hashKey(new StringRedisSerializer())
|
|
|
+ .hashValue(new Jackson2JsonRedisSerializer<>(Object.class))
|
|
|
+ .build();
|
|
|
+
|
|
|
+ return new ReactiveRedisTemplate<>(factory, serializationContext);
|
|
|
+ }
|
|
|
+
|
|
|
+// @Bean
|
|
|
+// public ReactiveRedisTemplate<String, Object> reactiveRedisTemplate(ReactiveRedisConnectionFactory connectionFactory) {
|
|
|
+// return new ReactiveRedisTemplate<>(connectionFactory,redisSerializationContext());
|
|
|
+// }
|
|
|
}
|
|
|
|