java - Spring Boot中等待数据库连接无一异常(exception)

标签 java spring spring-boot exception mariadb

我想用 Spring Boot 创建一个微服务。对于持久性,我使用 mariadb 数据库。为了等待在 docker 容器中运行的数据库,我实现了如下所示的代码 here :

@Bean
    public DatabaseStartupValidator databaseStartupValidator(DataSource dataSource) {
        var dsv = new DatabaseStartupValidator();
        dsv.setDataSource(dataSource);
        dsv.setTimeout(60);
        dsv.setInterval(7);
        dsv.setValidationQuery(DatabaseDriver.MYSQL.getValidationQuery());
        return dsv;
    }
代码运行良好,我的应用程序现在正在等待数据库连接。但我在应用程序启动时遇到异常:
java.sql.SQLNonTransientConnectionException: Could not connect to Host ....
...
...
...
在下一行我得到一个信息,它将等待数据库:021-04-07 21:29:40.816 INFO 16569 --- [ main] o.s.j.support.DatabaseStartupValidator : Database has not started up yet - retrying in 7 seconds (timeout in 57.65 seconds)之后,应用程序按预期启动。所以我认为一切正常,但我必须做些什么来抑制异常?在链接中 article它应该无一异常(exception)地工作。我是否必须实现“dependsOnPostProcessor”功能?我必须使用哪个依赖项?抱歉,可能是个愚蠢的问题,我是 Spring Boot 的新手。

最佳答案

要摆脱该异常,您可以在 application.properties 中声明以下指令文件:

logging.level.com.zaxxer.hikari=OFF
请记住,如果应用程序无法与数据库取得联系,您的 Spring 会在一段时间后由于该异常而崩溃。此外,上述指令会阻止您查看与 Hikari 相关的任何日志记录 Activity 。
总之,您可以隐藏异常的外观,直到应用程序因超时而死亡之前成为可能。
希望我澄清了一点

关于java - Spring Boot中等待数据库连接无一异常(exception),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66993064/

相关文章:

java - Spring MVC - <form :errors> empty, BindingResult 包含错误

java - 从文件到 HTML 服务器端的内联 JS

java - gradle build : repo1. maven.org:未知错误

java - 如何像某些文件传输应用程序那样通过 WiFi 发布设备名称(变量)?

java - spring data mongodb 1.3.2项目运行问题

java - 框架打不开

java - 从 JAVA Spring 创建到 firebase 的 HTTP.PATCH 请求

java - NullPointerException:Junit Spring 注解配置

java - 如何使用新模型/ child 更新/放置对象属性 Webflux Spring Reactive

spring-boot - Spring Boot Test不适用于Java 11