【问题标题】:How to initialize Spring application when Redis is not available?Redis不可用时如何初始化Spring应用程序?
【发布时间】:2020-12-17 12:01:08
【问题描述】:

我需要我的 Spring boot 应用程序继续初始化配置的 Redis 服务器依赖是否可用。

另一方面,这不适用于数据库,因为如果数据库不可用或有其他初始化问题,我想快速失败。

目前我找到的最简单的解决方案是配置选项spring.datasource.continue-on-error=true,但这也会忽略数据库初始化错误,这显然不是我需要的。

【问题讨论】:

    标签: spring spring-boot spring-data-redis


    【解决方案1】:

    如果您使用 JPA 进行数据库映射,则可以对存储库类进行延迟初始化

    @EnableJpaRepositories(bootstrapMode=BootstrapMode.LAZY)
    

    为了有条件地初始化 Redis 连接,您可以创建一个新类

    @Configuration
    @Profile("redisDB)
    public class RedisDBConfiguration{
    ....
    }
    
    

    或者您可以根据不同的 spring 配置文件在属性中启用和禁用 Redis 存储库

    application.yml

    spring:
      data:
        redis:
          repositories:
            enabled: false
    

    【讨论】:

    • 感谢您的想法,但这并不能真正解决我的问题。我需要使用一个配置文件,它会在初始化时急切地加载 Postgres 存储库(如果不是连接失败则失败),但如果连接失败则跳过 Redis 并继续初始化。我已经禁用了 redis 存储库,因为我只需要 PUB/SUB 功能并且我不使用存储库或缓存。
    猜你喜欢
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 2017-01-10
    • 2011-01-26
    • 1970-01-01
    • 2013-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多