♻️ Refactoring code. 重构 RedisTemplate 序列化泛型
This commit is contained in:
1 parent
018768a15e
commit
93f02b9d8b
2 files changed
+9
-8
No files matched your search
+4
-6
@@ -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<String, String> redisTemplate;
|
||||
|
||||
@Override
|
||||
public Mono<Void> save(Mono<RouteDefinition> 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<Void> delete(Mono<String> 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<RouteDefinitionVo> values = redisTemplate.opsForHash().values(CacheConstants.ROUTE_KEY);
|
||||
HashOperations<String, String, RouteDefinitionVo> stringObjectObjectHashOperations = redisTemplate.opsForHash();
|
||||
List<RouteDefinitionVo> values = stringObjectObjectHashOperations.values(CacheConstants.ROUTE_KEY);
|
||||
log.info("redis 中路由定义条数: {}, {}", values.size(), values);
|
||||
|
||||
RouteCacheHolder.setRouteList(values);
|
||||
|
||||
+5
-2
@@ -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<String, String> 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<String, String, RouteDefinitionVo> stringStringValueOperations = redisTemplate.opsForHash();
|
||||
stringStringValueOperations.put(CacheConstants.ROUTE_KEY, route.getRouteId(), vo);
|
||||
});
|
||||
|
||||
// 通知网关重置路由
|
||||
|
||||
Reference in new issue
Block a user