123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- package edu.travel.cache.config;
- import com.fasterxml.jackson.annotation.JsonAutoDetect;
- import com.fasterxml.jackson.annotation.JsonTypeInfo;
- import com.fasterxml.jackson.annotation.PropertyAccessor;
- import com.fasterxml.jackson.databind.ObjectMapper;
- import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
- import com.fasterxml.jackson.databind.module.SimpleModule;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.core.io.ClassPathResource;
- import org.springframework.data.redis.cache.RedisCacheConfiguration;
- import org.springframework.data.redis.connection.RedisConnectionFactory;
- import org.springframework.data.redis.core.RedisTemplate;
- import org.springframework.data.redis.core.script.DefaultRedisScript;
- import org.springframework.data.redis.core.script.RedisScript;
- import org.springframework.data.redis.listener.RedisMessageListenerContainer;
- import org.springframework.data.redis.serializer.*;
- import org.springframework.scripting.support.ResourceScriptSource;
- @Configuration
- public class EduTravelCacheConfig {
- // @Autowired
- // private RedisTemplate redisTemplate;
- // @Autowired
- // private RedisConnectionFactory redisConnectionFactory;
- @Bean
- public RedisCacheConfiguration redisCacheConfiguration(){
- RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig();
- //设置redis缓存值的序列化方式,此处采用json方式序列化
- redisCacheConfiguration = redisCacheConfiguration.
- serializeValuesWith(RedisSerializationContext.SerializationPair.
- fromSerializer(new GenericJackson2JsonRedisSerializer()));
- return redisCacheConfiguration;
- }
- // @Bean
- // public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory factory) {
- // redisTemplate.setConnectionFactory(factory);
- // Jackson2JsonRedisSerializer<Object> serializer = new Jackson2JsonRedisSerializer<Object>(Object.class);
- // redisTemplate.setDefaultSerializer(serializer);
- // //设置序列化Key的实例化对象
- // redisTemplate.setKeySerializer(new StringRedisSerializer());
- // //设置序列化Value的实例化对象
- // redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
- //
- // return redisTemplate;
- // }
- //
- // @Bean
- // public RedisMessageListenerContainer redisContainer() {
- // final RedisMessageListenerContainer container = new RedisMessageListenerContainer();
- // container.setConnectionFactory(redisConnectionFactory);
- // return container;
- // }
- //
- // @Bean
- // public RedisScript<Long> limitRedisScript() {
- // DefaultRedisScript<Long> redisScript = new DefaultRedisScript<>();
- // redisScript.setScriptSource(new ResourceScriptSource(new ClassPathResource("scripts/limit.lua")));
- // redisScript.setResultType(Long.class);
- // return redisScript;
- // }
- // @Bean(name = "redisTemplate")
- // public RedisTemplate<String, Object> getRedisTemplate(RedisConnectionFactory factory) {
- // RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
- // redisTemplate.setConnectionFactory(factory);
- // RedisSerializer stringSerializer = new StringRedisSerializer();
- // redisTemplate.setKeySerializer(stringSerializer);
- // redisTemplate.setValueSerializer(stringSerializer);
- // redisTemplate.setHashKeySerializer(stringSerializer);
- // redisTemplate.setHashValueSerializer(stringSerializer);
- //// Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
- //// ObjectMapper objectMapper = new ObjectMapper();
- //// // 使用Jackson序列化对象
- //// objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
- //// objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance ,
- //// ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY);
- //// jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
- //// jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
- ////
- //// redisTemplate.setValueSerializer(jackson2JsonRedisSerializer); // value的序列化类型
- //// redisTemplate.setHashKeySerializer(stringRedisSerializer);
- //// redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
- // redisTemplate.afterPropertiesSet();
- // return redisTemplate;
- // }
- }
|