|
|
@ -5,6 +5,9 @@ import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
|
|
|
import com.fasterxml.jackson.annotation.PropertyAccessor;
|
|
|
|
import com.fasterxml.jackson.annotation.PropertyAccessor;
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
|
|
|
|
import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
|
|
|
|
|
|
|
|
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
|
|
|
|
|
|
|
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
|
|
|
|
|
|
|
|
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
import org.dromara.common.core.utils.SpringUtils;
|
|
|
|
import org.dromara.common.core.utils.SpringUtils;
|
|
|
|
import org.dromara.common.redis.config.properties.RedissonProperties;
|
|
|
|
import org.dromara.common.redis.config.properties.RedissonProperties;
|
|
|
@ -19,6 +22,10 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties
|
|
|
|
import org.springframework.context.annotation.Bean;
|
|
|
|
import org.springframework.context.annotation.Bean;
|
|
|
|
import org.springframework.core.task.VirtualThreadTaskExecutor;
|
|
|
|
import org.springframework.core.task.VirtualThreadTaskExecutor;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
|
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
|
|
|
|
|
import java.util.TimeZone;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* redis配置
|
|
|
|
* redis配置
|
|
|
|
*
|
|
|
|
*
|
|
|
@ -32,13 +39,16 @@ public class RedisConfiguration {
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private RedissonProperties redissonProperties;
|
|
|
|
private RedissonProperties redissonProperties;
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private ObjectMapper objectMapper;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Bean
|
|
|
|
@Bean
|
|
|
|
public RedissonAutoConfigurationCustomizer redissonCustomizer() {
|
|
|
|
public RedissonAutoConfigurationCustomizer redissonCustomizer() {
|
|
|
|
return config -> {
|
|
|
|
return config -> {
|
|
|
|
ObjectMapper om = objectMapper.copy();
|
|
|
|
JavaTimeModule javaTimeModule = new JavaTimeModule();
|
|
|
|
|
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
|
|
javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(formatter));
|
|
|
|
|
|
|
|
javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(formatter));
|
|
|
|
|
|
|
|
ObjectMapper om = new ObjectMapper();
|
|
|
|
|
|
|
|
om.registerModule(javaTimeModule);
|
|
|
|
|
|
|
|
om.setTimeZone(TimeZone.getDefault());
|
|
|
|
om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
|
|
|
|
om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
|
|
|
|
// 指定序列化输入的类型,类必须是非final修饰的。序列化时将对象全类名一起保存下来
|
|
|
|
// 指定序列化输入的类型,类必须是非final修饰的。序列化时将对象全类名一起保存下来
|
|
|
|
om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL);
|
|
|
|
om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL);
|
|
|
|