diff --git a/app-service/pom.xml b/app-service/pom.xml index d21e39a..12745e7 100644 --- a/app-service/pom.xml +++ b/app-service/pom.xml @@ -115,6 +115,10 @@ org.apache.commons commons-pool2 + + com.fasterxml.jackson.core + jackson-databind + diff --git a/app-service/src/main/java/com/depsystem/app/systemServer/config/RedisConfig.java b/app-service/src/main/java/com/depsystem/app/systemServer/config/RedisConfig.java index 0b53eca..b66d534 100644 --- a/app-service/src/main/java/com/depsystem/app/systemServer/config/RedisConfig.java +++ b/app-service/src/main/java/com/depsystem/app/systemServer/config/RedisConfig.java @@ -1,45 +1,32 @@ package com.depsystem.app.systemServer.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 org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.RedisSerializer; -import org.springframework.data.redis.serializer.StringRedisSerializer; -import java.net.UnknownHostException; @Configuration public class RedisConfig { - @Bean - @SuppressWarnings("all") - public RedisTemplate redisTemplate (RedisConnectionFactory redisConnectionFactory)throws UnknownHostException { - RedisTemplate redis = new RedisTemplate<>(); - redis.setConnectionFactory(redisConnectionFactory); - - Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); - ObjectMapper mapper = new ObjectMapper(); - mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); -// mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); 这个被弃用了,所以现在要用 activateDefaultTyping - mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance,ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY); - jackson2JsonRedisSerializer.setObjectMapper(mapper); - RedisSerializer stringRedisSerializer = new StringRedisSerializer(); - // key采用String的序列化方式 - redis.setKeySerializer(stringRedisSerializer); - // hash的key也采用String的序列化方式 - redis.setHashKeySerializer(stringRedisSerializer); - // value序列化方式采用jackson - redis.setValueSerializer(jackson2JsonRedisSerializer); - // hash的value序列化方式采用jackson - redis.setHashValueSerializer(jackson2JsonRedisSerializer); - redis.afterPropertiesSet(); - return redis; + @Bean + public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory){ + //创建RedisTemplate对象 + RedisTemplate template = new RedisTemplate<>(); + //设置连接工厂 + template.setConnectionFactory(connectionFactory); + //创建JSON序列化工具 + GenericJackson2JsonRedisSerializer jsonRedisSerializer=new GenericJackson2JsonRedisSerializer(); + //设置Key的序列化 + template.setKeySerializer(RedisSerializer.string()); + template.setHashKeySerializer(RedisSerializer.string()); + //设置value的序列化 + template.setValueSerializer(jsonRedisSerializer); + template.setHashValueSerializer(jsonRedisSerializer); + //返回 + return template; } + } diff --git a/app-service/src/main/java/com/depsystem/app/systemServer/util/RedisUtil.java b/app-service/src/main/java/com/depsystem/app/systemServer/util/RedisUtil.java index c620a1c..d661233 100644 --- a/app-service/src/main/java/com/depsystem/app/systemServer/util/RedisUtil.java +++ b/app-service/src/main/java/com/depsystem/app/systemServer/util/RedisUtil.java @@ -9,7 +9,7 @@ package com.depsystem.app.systemServer.util; -import org.springframework.beans.factory.annotation.Autowired; +import jakarta.annotation.Resource; import org.springframework.data.redis.core.RedisTemplate; @@ -22,48 +22,55 @@ import java.util.concurrent.TimeUnit; @Component public final class RedisUtil { - -// private final RedisTemplate redisTemplate; + // private final RedisTemplate redisTemplate; // // public RedisUtil(RedisTemplate rt ) { // this. redisTemplate = rt; // } - @Autowired + @Resource private RedisTemplate redisTemplate; + public RedisUtil() { + } + /** * 指定缓存失效时间 + * * @param key 键 * @param time 时间(秒) * @return */ - public boolean expire(String key, long time) { + public Boolean expire(String key, long time) { + boolean exp = true; try { if (time > 0) { redisTemplate.expire(key, time, TimeUnit.SECONDS); } - return true; } catch (Exception e) { e.printStackTrace(); - return false; + exp = false; + return exp; } + return exp; } /** * 根据key 获取过期时间 + * * @param key 键 不能为null * @return 时间(秒) 返回0代表为永久有效 */ - public long getExpire(String key) { + public Long getExpire(String key) { return redisTemplate.getExpire(key, TimeUnit.SECONDS); } /** * 判断key是否存在 + * * @param key 键 * @return true 存在 false不存在 */ - public boolean hasKey(String key) { + public Boolean hasKey(String key) { try { return redisTemplate.hasKey(key); } catch (Exception e) { diff --git a/app-start/src/test/java/com/depsystem/app/AppApplicationTests.java b/app-start/src/test/java/com/depsystem/app/AppApplicationTests.java index a9764e2..f87f5fe 100644 --- a/app-start/src/test/java/com/depsystem/app/AppApplicationTests.java +++ b/app-start/src/test/java/com/depsystem/app/AppApplicationTests.java @@ -149,8 +149,8 @@ class AppApplicationTests { System.out.println("***************************************************"); RedisUtil redisUtil = new RedisUtil(); redisUtil.expire("a",60); - long a = redisUtil.getExpire("a"); - System.out.println(a); +// long a = redisUtil.getExpire("a"); +// System.out.println(a); } }