From 93f02b9d8b4649638edb525159f320b045c6d702 Mon Sep 17 00:00:00 2001 From: lbw Date: Tue, 28 Nov 2023 16:11:01 +0800 Subject: [PATCH] =?UTF-8?q?:recycle:=20Refactoring=20code.=20=E9=87=8D?= =?UTF-8?q?=E6=9E=84=20RedisTemplate=20=E5=BA=8F=E5=88=97=E5=8C=96?= =?UTF-8?q?=E6=B3=9B=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gateway/support/RedisRouteDefinitionWriter.java | 10 ++++------ .../pigx/admin/config/DynamicRouteInitRunner.java | 7 +++++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/pigx-common/pigx-common-gateway/src/main/java/com/pig4cloud/pigx/common/gateway/support/RedisRouteDefinitionWriter.java b/pigx-common/pigx-common-gateway/src/main/java/com/pig4cloud/pigx/common/gateway/support/RedisRouteDefinitionWriter.java index fc5a20353..f3ed09e0c 100644 --- a/pigx-common/pigx-common-gateway/src/main/java/com/pig4cloud/pigx/common/gateway/support/RedisRouteDefinitionWriter.java +++ b/pigx-common/pigx-common-gateway/src/main/java/com/pig4cloud/pigx/common/gateway/support/RedisRouteDefinitionWriter.java @@ -25,9 +25,9 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.cloud.gateway.route.RouteDefinition; import org.springframework.cloud.gateway.route.RouteDefinitionRepository; +import org.springframework.data.redis.core.HashOperations; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; -import org.springframework.data.redis.serializer.StringRedisSerializer; import org.springframework.stereotype.Component; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -45,7 +45,7 @@ import java.util.List; @RequiredArgsConstructor public class RedisRouteDefinitionWriter implements RouteDefinitionRepository { - private final RedisTemplate redisTemplate; + private final RedisTemplate redisTemplate; @Override public Mono save(Mono route) { @@ -53,7 +53,6 @@ public class RedisRouteDefinitionWriter implements RouteDefinitionRepository { RouteDefinitionVo vo = new RouteDefinitionVo(); BeanUtils.copyProperties(r, vo); log.info("保存路由信息{}", vo); - redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.opsForHash().put(CacheConstants.ROUTE_KEY, r.getId(), vo); redisTemplate.convertAndSend(CacheConstants.ROUTE_JVM_RELOAD_TOPIC, "新增路由信息,网关缓存更新"); return Mono.empty(); @@ -64,7 +63,6 @@ public class RedisRouteDefinitionWriter implements RouteDefinitionRepository { public Mono delete(Mono routeId) { routeId.subscribe(id -> { log.info("删除路由信息{}", id); - redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.opsForHash().delete(CacheConstants.ROUTE_KEY, id); }); redisTemplate.convertAndSend(CacheConstants.ROUTE_JVM_RELOAD_TOPIC, "删除路由信息,网关缓存更新"); @@ -85,9 +83,9 @@ public class RedisRouteDefinitionWriter implements RouteDefinitionRepository { return Flux.fromIterable(routeList); } - redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setHashValueSerializer(new Jackson2JsonRedisSerializer<>(RouteDefinitionVo.class)); - List values = redisTemplate.opsForHash().values(CacheConstants.ROUTE_KEY); + HashOperations stringObjectObjectHashOperations = redisTemplate.opsForHash(); + List values = stringObjectObjectHashOperations.values(CacheConstants.ROUTE_KEY); log.info("redis 中路由定义条数: {}, {}", values.size(), values); RouteCacheHolder.setRouteList(values); diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/config/DynamicRouteInitRunner.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/config/DynamicRouteInitRunner.java index 309ab4d61..3e5e2f4e7 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/config/DynamicRouteInitRunner.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/config/DynamicRouteInitRunner.java @@ -32,6 +32,7 @@ import org.springframework.cloud.gateway.handler.predicate.PredicateDefinition; import org.springframework.context.annotation.Configuration; import org.springframework.context.event.EventListener; import org.springframework.core.annotation.Order; +import org.springframework.data.redis.core.HashOperations; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.listener.ChannelTopic; import org.springframework.data.redis.listener.RedisMessageListenerContainer; @@ -53,7 +54,7 @@ import java.util.Map; @RequiredArgsConstructor public class DynamicRouteInitRunner implements InitializingBean { - private final RedisTemplate redisTemplate; + private final RedisTemplate redisTemplate; private final SysRouteConfService routeConfService; @@ -89,8 +90,10 @@ public class DynamicRouteInitRunner implements InitializingBean { vo.setPredicates(predicateObj.toList(PredicateDefinition.class)); vo.setMetadata(JSONUtil.toBean(route.getMetadata(), Map.class)); log.info("加载路由ID:{},{}", route.getRouteId(), vo); + redisTemplate.setHashValueSerializer(new Jackson2JsonRedisSerializer<>(RouteDefinitionVo.class)); - redisTemplate.opsForHash().put(CacheConstants.ROUTE_KEY, route.getRouteId(), vo); + HashOperations stringStringValueOperations = redisTemplate.opsForHash(); + stringStringValueOperations.put(CacheConstants.ROUTE_KEY, route.getRouteId(), vo); }); // 通知网关重置路由