问题是当将 Spring 缓存与 Redis 缓存管理器一起使用时,由于没有默认构造函数,无法反序列化 Spring Pageable 响应
使用的spring boot版本是2.1.4.RELEASE
使用序列化器的 Redis 配置类
@Bean
public RedisCacheManager redisCacheManager(LettuceConnectionFactory lettuceConnectionFactory) {
RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig().disableCachingNullValues()
.serializeValuesWith(
RedisSerializationContext.SerializationPair.fromSerializer(RedisSerializer.json()));
redisCacheConfiguration.usePrefix();
return RedisCacheManager.RedisCacheManagerBuilder.fromConnectionFactory(lettuceConnectionFactory)
.cacheDefaults(redisCacheConfiguration).build();
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用 Spring 缓存和 Redis 作为缓存后端在 Redis 缓存中缓存 Spring REST API 页面结果响应
@GetMapping
@Cacheable("Article_Response_Page")
public Page<Article> findAll(Pageable pageable) {
return articleRepository.findAll(pageable);
}
Run Code Online (Sandbox Code Playgroud)
我可以Page<Article>使用序列化程序在 Redis 缓存中看到以 JSON 形式缓存,RedisSerializer.json()但在下一次调用期间,当从缓存中读取数据时,出现以下异常
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot
construct instance of `org.springframework.data.domain.PageImpl` (no
Creators, like default construct, exist): cannot deserialize from Object
value (no delegate- or …Run Code Online (Sandbox Code Playgroud) fasterxml spring-boot spring-cache spring-data-commons jackson2
我们可以使用 Spring cloud gateway 作为转发代理吗?我绑了,不是吗,并且被 HTTPS 流量困住了。网关无法支持“HTTPS - CONNECT 请求”我知道底层使用了 Netty,但喜欢使用 Netty 的其他功能网关因此想将其用作转发代理
用例 在网关路由规则中有一些内部站点 URL,并且 URL 的其余部分必须是直通,就像转发代理的工作方式一样。我有一个示例通配符配置来测试转发代理设置,但 HTTPS 流量无法通过。
cloud:
gateway:
routes:
- id: wildcard_route
uri: no://op
predicates:
- Path=/**
Run Code Online (Sandbox Code Playgroud)
我需要一些有关如何在 Spring Cloud gateway 中启用转发代理的指导