src/main/java/com/lunhan/xxx/common/cache/CacheManagerConfig.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lunhan/xxx/common/cache/RedisKeySerializer.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lunhan/xxx/common/config/RedisConfig.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lunhan/xxx/common/config/SysConfig.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/lunhan/xxx/common/cache/CacheManagerConfig.java
@@ -8,9 +8,9 @@ import org.springframework.data.redis.cache.RedisCacheConfiguration; import org.springframework.data.redis.cache.RedisCacheManager; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.RedisSerializationContext; import org.springframework.data.redis.serializer.StringRedisSerializer; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.serializer.*; import java.time.Duration; @@ -23,7 +23,7 @@ //设置24小时过期 .entryTtl(Duration.ofMillis(ConstantFactory.TIME_LEN_24H)) //设置key的序列化方式 .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer())) .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new RedisKeySerializer())) //设置值的序列化方式 .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer())); @@ -34,4 +34,26 @@ //返回构造的cacheManager return builder.transactionAware().cacheDefaults(config).build(); } @Bean public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory) { StringRedisTemplate stringRedisTemplate = new StringRedisTemplate(redisConnectionFactory); stringRedisTemplate.setKeySerializer(new RedisKeySerializer()); return stringRedisTemplate; } @Bean public RedisTemplate<String, Object> objectRedisTemplate(RedisConnectionFactory redisConnectionFactory) { RedisSerializer<String> serializer = new StringRedisSerializer(); Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class); RedisTemplate<String, Object> template = new RedisTemplate<>(); template.setConnectionFactory(redisConnectionFactory); template.setKeySerializer(new RedisKeySerializer()); template.setValueSerializer(jackson2JsonRedisSerializer); template.setHashKeySerializer(serializer); template.setHashValueSerializer(jackson2JsonRedisSerializer); template.afterPropertiesSet(); return template; } } src/main/java/com/lunhan/xxx/common/cache/RedisKeySerializer.java
对比新文件 @@ -0,0 +1,30 @@ package com.lunhan.xxx.common.cache; import com.lunhan.xxx.common.config.SysConfig; import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.lang.Nullable; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; public class RedisKeySerializer implements RedisSerializer<String> { private static final Charset charset = StandardCharsets.UTF_8; /* * (non-Javadoc) * @see org.springframework.data.redis.serializer.RedisSerializer#deserialize(byte[]) */ @Override public String deserialize(@Nullable byte[] bytes) { return (bytes == null ? null : new String(bytes, charset).replaceFirst(SysConfig.redis.getKeyPrefix(), "")); } /* * (non-Javadoc) * @see org.springframework.data.redis.serializer.RedisSerializer#serialize(java.lang.Object) */ @Override public byte[] serialize(@Nullable String string) { return (string == null ? null : (SysConfig.redis.getKeyPrefix() + string).getBytes(charset)); } } src/main/java/com/lunhan/xxx/common/config/RedisConfig.java
对比新文件 @@ -0,0 +1,18 @@ package com.lunhan.xxx.common.config; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @Component @ConfigurationProperties(prefix = "spring.redis") public class RedisConfig { private String keyPrefix; public String getKeyPrefix() { return keyPrefix; } public void setKeyPrefix(String keyPrefix) { this.keyPrefix = keyPrefix; } } src/main/java/com/lunhan/xxx/common/config/SysConfig.java
@@ -9,6 +9,7 @@ public static JWTConfig jwt = SpringUtil.getBean(JWTConfig.class); public static JdbcSetConfig jdbc = SpringUtil.getBean(JdbcSetConfig.class); public static FileConfig file = SpringUtil.getBean(FileConfig.class); public static RedisConfig redis = SpringUtil.getBean(RedisConfig.class); public static String getTokenHeader() { return jwt.getTokenHeader(); src/main/resources/application.yml
@@ -12,14 +12,16 @@ enabled: true #开启文件上传 max-file-size: 10MB #限制文件上传大小为10M mail: password: ennnntqxzijsdjdh username: 2413500195@qq.com password: 123456 username: 123456@qq.com host: smtp.qq.com default-encoding: UTF-8 redis: keyPrefix: xxx_yyy_ # redis缓存key统一加上前缀 jwt: token_header: Token #JWT存储的请求头 secret: xxx-lunhan-secret #hardware-lunhan-secret #JWT加解密密钥(所有硬件项目通用,公用一个用户中心登录,其他项目不写登录接口,直接用token) secret: xxx-yyy-secret #hardware-lunhan-secret #JWT加解密密钥(所有硬件项目通用,公用一个用户中心登录,其他项目不写登录接口,直接用token) expiration: 15811200 #JWT的超期限时间(60*60*24*183) 单位:秒 head: 'Bearer ' #JWT负载中拿到开头