【问题标题】:Stop Spring Application If Database Connection is not available如果数据库连接不可用,则停止 Spring 应用程序
【发布时间】:2022-08-03 20:48:25
【问题描述】:

在我的 Spring Boot 应用程序中,我们正在连接到我们的 oracle 数据库。 尝试连接数据库 2-3 次后,如果数据库连接失败,我希望我的应用程序自动关闭。 我该怎么做?

    标签: java spring-boot


    【解决方案1】:

    方法很少,但一种快速的方法是使用 SpringApplication 的exit 方法。

    public YourClass{
    
    @Autowired
    ApplicationContext ctx;
    
    public dbconnectivityCheck{
      //if connection attempts failed
      SpringApplication.exit(ctx);
    }
    }
    

    【讨论】:

    • 嗨 Ashish,我们现在所做的是通过调度程序从数据库中获取一些数据,如果遇到任何与连接相关的异常,我们只需调用 system.exit(0);现在,我们正在寻找是否可以在应用程序启动时检查数据库连接不可用,然后我们不希望我们的 spring 应用程序继续启动并且应该停止。你能建议任何方法吗?
    • @HimanshuGupta,您的新要求与您原来的问题完全不同。如果这个地址是原始问题,你能接受这个答案吗?顺便说一句,对于您的新要求,如果您的数据库连接是通过 spring 数据源创建的,则无需执行任何操作,因为如果由于任何原因连接不可用(例如主机无​​法访问或连接已耗尽),那么 spring boot 将不会t 开始执行。
    • 不知道为什么在我的情况下它没有发生,我的 spring 应用程序正在启动(当然我得到了 db 连接异常),但是当我尝试运行我的项目时它不起作用。
    • @HimanshuGupta,抱歉没有得到你的问题..你说你有数据库连接异常,如果你得到这样的异常,spring boot 将停止并且可以在日志中看到同样的情况。我无法理解however my when i am trying to run my project it is not working 的意思
    【解决方案2】:
      SpringApplication.run(Your_Application.class, args).close();
    

    使用它来关闭上下文并释放所有资源。

    【讨论】:

    • 但是我怎么知道数据库连接是否丢失。?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-31
    • 2021-03-01
    • 1970-01-01
    • 2019-06-16
    相关资源
    最近更新 更多