51 lines
3.2 KiB
Java
51 lines
3.2 KiB
Java
/*
|
|
* Copyright 2025 Google. This software is provided as-is, without warranty or representation for any use or purpose.
|
|
* Your use of it is subject to your agreement with Google.
|
|
*/
|
|
|
|
package com.example.config;
|
|
|
|
import com.example.dto.dialogflow.conversation.ConversationMessageDTO;
|
|
import com.example.dto.dialogflow.conversation.ConversationSessionDTO;
|
|
import com.example.dto.dialogflow.notification.NotificationSessionDTO;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
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.Jackson2JsonRedisSerializer;
|
|
import org.springframework.data.redis.serializer.RedisSerializationContext;
|
|
import org.springframework.data.redis.serializer.StringRedisSerializer;
|
|
|
|
@Configuration
|
|
public class RedisConfig {
|
|
|
|
@Bean
|
|
public ReactiveRedisTemplate<String, ConversationSessionDTO> reactiveRedisTemplate(ReactiveRedisConnectionFactory factory, ObjectMapper objectMapper) {
|
|
Jackson2JsonRedisSerializer<ConversationSessionDTO> serializer = new Jackson2JsonRedisSerializer<>(objectMapper, ConversationSessionDTO.class);
|
|
RedisSerializationContext.RedisSerializationContextBuilder<String, ConversationSessionDTO> builder = RedisSerializationContext.newSerializationContext(new StringRedisSerializer());
|
|
RedisSerializationContext<String, ConversationSessionDTO> context = builder.value(serializer).build();
|
|
return new ReactiveRedisTemplate<>(factory, context);
|
|
}
|
|
|
|
@Bean
|
|
public ReactiveRedisTemplate<String, NotificationSessionDTO> reactiveNotificationRedisTemplate(ReactiveRedisConnectionFactory factory, ObjectMapper objectMapper) {
|
|
Jackson2JsonRedisSerializer<NotificationSessionDTO> serializer = new Jackson2JsonRedisSerializer<>(objectMapper, NotificationSessionDTO.class);
|
|
RedisSerializationContext.RedisSerializationContextBuilder<String, NotificationSessionDTO> builder = RedisSerializationContext.newSerializationContext(new StringRedisSerializer());
|
|
RedisSerializationContext<String, NotificationSessionDTO> context = builder.value(serializer).build();
|
|
return new ReactiveRedisTemplate<>(factory, context);
|
|
}
|
|
|
|
@Bean
|
|
public ReactiveRedisTemplate<String, ConversationMessageDTO> reactiveMessageRedisTemplate(ReactiveRedisConnectionFactory factory, ObjectMapper objectMapper) {
|
|
Jackson2JsonRedisSerializer<ConversationMessageDTO> serializer = new Jackson2JsonRedisSerializer<>(objectMapper, ConversationMessageDTO.class);
|
|
RedisSerializationContext.RedisSerializationContextBuilder<String, ConversationMessageDTO> builder = RedisSerializationContext.newSerializationContext(new StringRedisSerializer());
|
|
RedisSerializationContext<String, ConversationMessageDTO> context = builder.value(serializer).build();
|
|
return new ReactiveRedisTemplate<>(factory, context);
|
|
}
|
|
|
|
@Bean
|
|
public ReactiveRedisTemplate<String, String> reactiveStringRedisTemplate(ReactiveRedisConnectionFactory factory) {
|
|
return new ReactiveRedisTemplate<>(factory, RedisSerializationContext.string());
|
|
}
|
|
} |