package com.mindskip.xzs.configuration.spring.cache; import org.springframework.cache.annotation.CachingConfigurerSupport; import org.springframework.cache.annotation.EnableCaching; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.cache.CacheKeyPrefix; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.*; /** * @version 2.2.0 * @description: 缓存配置 * Copyright (C), 2020-2021, 武汉思维跳跃科技有限公司 * @date 2021 /9/7 9:45 */ @Configuration @EnableCaching public class CacheConfig extends CachingConfigurerSupport { /** * spring boot redis默认序列化方式 * * @param redisConnectionFactory the redis connection factory * @return RedisTemplate redis template */ @Bean public RedisTemplate getRedisTemplate(RedisConnectionFactory redisConnectionFactory) { final RedisTemplate redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(redisConnectionFactory); redisTemplate.setKeySerializer(RedisSerializer.string()); redisTemplate.setHashKeySerializer(RedisSerializer.string()); redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer()); redisTemplate.afterPropertiesSet(); return redisTemplate; } /** * spring redis 默认生成key方式,包含::号 * * @param prefix the prefix * @param key the key * @return string */ public String simpleKeyGenerator(String prefix, String key) { return CacheKeyPrefix.simple().compute(prefix) + key; } }