springboot加入redis后,redis未启动,项目也会启动失败,如何让项目启动和redis是否启动无关
时间: 2023-07-04 22:20:36 浏览: 54
在 Spring Boot 中通过使用 RedisTemplate 来操作 Redis,使用 RedisTemplate 时,当 Redis 服务器未启动时,会抛出 RedisConnectionFailureException 异常导致项目启动失败。
为了让项目启动和 Redis 是否启动无关,可以在配置 RedisTemplate 时,通过设置 RedisConnectionFactory 的属性为 "org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory",并设置 RedisConnectionFactory 的属性 "validateConnection" 为 false,这样就可以防止 Redis 未启动导致的连接异常,从而保证项目的正常启动。
示例代码如下:
```java
@Configuration
public class RedisConfiguration {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
return redisTemplate;
}
@Bean
public RedisConnectionFactory redisConnectionFactory() {
LettuceConnectionFactory lettuceConnectionFactory = new LettuceConnectionFactory();
lettuceConnectionFactory.setValidateConnection(false);
return lettuceConnectionFactory;
}
}
```
这样就可以在 Redis 未启动时,保证项目能够正常启动。