【发布时间】:2019-04-16 22:36:39
【问题描述】:
我将我的应用程序更新为 Spring Boot 2.1.0 和 Java 11。从那时起,我的 Redis 就不再工作了。
当我调用findById() 并且结果为空时,就没有问题了。
当我调用findById() 并且有结果时,应用程序/线程此时卡住了,没有任何反应。
当我使用 Spring Boot 2.0.6 和 Java 9 时,相同的代码运行良好。
我尝试使用LettuceConnectionFactory 和JedisConnectionFactory 得到相同的结果。
我的 Redis 配置:
@Configuration
@EnableRedisRepositories
public class RedisConfiguration {
@Bean
RedisConnectionFactory connectionFactory() {
return new LettuceConnectionFactory();
}
@Bean
@Primary
RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(connectionFactory);
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
return template;
}
}
我的实体:
@Value
@RedisHash("token")
public class Token {
@Id
private String key;
private String value;
@TimeToLive
private Long expiration;
}
我的存储库只是扩展了CrudRepository,我只使用提供的方法。
Redis-Server 版本是 Redis server v=4.0.9 在 OSX (dev) / Ubuntu (test) 上运行。
我是否错过了使用 Java 11 / Boot 2.1 必须应用的一些更改?
【问题讨论】:
-
你可以试试这个
template.afterPropertiesSet()和RedisConnectionsFactory.afterPropertiesSet()然后返回两个对象 -
从 spring boot 2.0.3 和 java 9 升级到 spring boot 2.1.0 和 java 11 后,我的 mongo 遇到了同样的问题。确实。您是否找到了使用 @AllArgsConstructor 以外的其他解决方案,因为我不想使用这个库。
标签: spring spring-boot spring-data spring-data-redis