SpringBoot2.0.3打印默认数据源为 HikariDataSource (null)问题

yizhihongxing

下面是SpringBoot2.0.3打印默认数据源为HikariDataSource(null)问题的完整攻略。

问题描述

在使用SpringBoot2.0.3版本时,如果使用了默认的数据源,会在启动程序时输出类似于“SpringBoot2.0.3打印默认数据源为 HikariDataSource (null)”的提示信息,其中null在不同的操作系统和环境下可能出现不同的值。这可能会让开发者感到困惑和疑惑,不知道出现这种情况的原因和解决方法。

解决方法

经过研究和测试,发现这个问题可能是由于HikariDataSource的日志输出导致的。 Spring Boot 2.x 默认的数据源使用的是HikariDataSource,所以输出信息中会涉及到HikariDataSource。

而这个 null 就代表着当前的数据库连接池对象没有被初始化或尚未加载相关的配置信息。

解决这个问题的方法有以下几种:

1. 关闭debug日志

在application.properties文件中设置日志输出级别为info,可以关闭debug日志输出,这样就不会看到类似于“HikariDataSource (null)”的提示信息了。

logging.level.root=info
logging.level.org.springframework.web=info

2. 指定正确的数据库连接配置

保证application.properties文件中指定的数据库连接信息是正确的,确保使用正确的配置启动程序。示例:

spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

示例

以下是一段在SpringBoot2.0.3中使用默认数据源时出现问题的示例:

@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

运行后,会看到以下输出信息:

2018-09-16 17:26:21.417  INFO 14092 --- [           main] com.example.demo.DemoApplication         : Starting DemoApplication on KWT-PC with PID 14092 (C:\Users\kkou\IdeaProjects\demo\target\classes started by kkou in C:\Users\kkou\IdeaProjects\demo)
2018-09-16 17:26:21.420 DEBUG 14092 --- [           main] com.example.demo.DemoApplication         : Running with Spring Boot v2.0.3.RELEASE, Spring v5.0.7.RELEASE
2018-09-16 17:26:21.431  INFO 14092 --- [           main] com.example.demo.DemoApplication         : No active profile set, falling back to default profiles: default
2018-09-16 17:26:21.429 DEBUG 14092 --- [           main] .t.TomcatWebSocketTestServerContainer : Web socket server started on port: 32989
2018-09-16 17:26:21.432 DEBUG 14092 --- [           main] i.n.u.i.PlatformDependent0               : -Dio.netty.noUnsafe:true (io.netty.util.internal.PlatformDependent)
2018-09-16 17:26:21.433 DEBUG 14092 --- [           main] i.n.util.internal.NativeLibraryLoader    : Unable to load the library 'netty-tcnative-windows-x86_64', trying other loading mechanism.
2018-09-16 17:26:21.443  WARN 14092 --- [           main] .c.l.ClasspathLoggingApplicationListener : Logging environment value 'info' cannot be parsed using Logback. Logging levels will be incorrectly parsed.
2018-09-16 17:26:21.446  INFO 14092 --- [           main] com.example.demo.DemoApplication         : Started DemoApplication in 1.739 seconds (JVM running for 2.262)

2018-09-16 17:26:29.450  INFO 14092 --- [extShutdownHook] o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService 'applicationTaskExecutor'

其中有一行输出信息是:

2018-09-16 17:26:21.446  INFO 14092 --- [           main] com.example.demo.DemoApplication         : Started DemoApplication in 1.739 seconds (JVM running for 2.262)

2018-09-16 17:26:29.450  INFO 14092 --- [extShutdownHook] o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService 'applicationTaskExecutor'

可以看到没有具体的错误信息,只有HikariDataSource(null)的输出。这时可以按照上述方法进行解决。

另一个示例,可以通过指定数据库连接配置来解决这个问题。下面是一个与MySQL数据库连接的示例,配置文件的名称为application.properties:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/testdb?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=myPassword
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.initial-size=1
spring.datasource.druid.min-idle=1
spring.datasource.druid.max-active=10
spring.datasource.druid.filters=stat,wall,log4j

其中,我们指定了MySQL数据库的连接配置信息。这样,在启动应用程序时,就不会出现HikariDataSource(null)的输出了。

总结

通过以上方法,我们可以有效地解决SpringBoot2.0.3打印默认数据源为 HikariDataSource(null)问题。如果您遇到了类似的问题,希望以上的解决方法能够帮到您。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot2.0.3打印默认数据源为 HikariDataSource (null)问题 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • springmvc url处理映射的三种方式集合

    SpringMVC 的 URL 处理映射可以通过以下三种方式来实现: 注解方式 XML 配置方式 接口方式 接下来我们将对这三种方式进行详细的讲解,并且提供两个示例供您参考。 1. 注解方式 注解方式是 SpringMVC 使用最广泛的一种 URL 处理映射方式。通过在 Controller 的方法上添加相应的注解来指定 URL 映射规则。 以下是一个 @R…

    Java 2023年6月15日
    00
  • Servlet简单实现登录功能

    以下是Servlet简单实现登录功能的攻略: 1. 创建Servlet 首先需要在IDE中创建一个Servlet,并在web.xml中配置Servlet的映射。代码如下: @WebServlet("/login") public class LoginServlet extends HttpServlet { } 2. 搭建登录页面 接下…

    Java 2023年5月26日
    00
  • 详解Java中Hibernate的基本原理

    详解Java中Hibernate的基本原理 简介 Hibernate是一种运行在Java平台上的ORM框架,它全面支持SQL查询、持久化、数据缓存等功能,能够方便地连接数据库并操作数据。本文将详细讲解Hibernate的基本原理。 Hibernate的基本原理 Hibernate的三个核心API Hibernate的三个核心API分别是: Configura…

    Java 2023年5月20日
    00
  • java基础理论Stream管道流Map操作示例

    分析题目中给出的“java基础理论Stream管道流Map操作示例”的关键词,可以将该攻略分为如下几个主要部分: Java基础:需要掌握Java的基础知识,例如类、变量、方法等。 理论:需要掌握Stream管道流和Map操作的相关概念和原理。 Stream管道流:需要掌握使用Stream管道流进行数据操作的方法和技巧。 Map操作示例:需要掌握如何使用Map…

    Java 2023年5月26日
    00
  • SpringMVC 拦截器不拦截静态资源的三种处理方式方法

    在 SpringMVC 中,拦截器可以用来拦截请求并进行处理。但是,有时候我们不希望拦截静态资源,因为这会影响应用程序的性能。本文将详细讲解 SpringMVC 拦截器不拦截静态资源的三种处理方式方法,并提供两个示例说明。 1. 方式一:使用 addResourceHandlers 方法 我们可以使用 addResourceHandlers 方法来配置静态资…

    Java 2023年5月18日
    00
  • Java中的日期时间处理及格式化处理

    Java中的日期时间处理及格式化处理 Java中完整的日期时间处理需要使用到Java.util包和Java.text包的类。日期时间处理主要包括以下内容: 1. Date类 Java中的Date类表示日期和时间的类。它表示的是一个具体的时间点,精度为毫秒级别。常用的方法有: //获取当前时间 Date today = new Date(); //获取时间戳 …

    Java 2023年5月20日
    00
  • Java实现调用外部程序的示例代码

    这里我为你提供一份“Java实现调用外部程序的示例代码”攻略: 1. 确认可供调用的外部程序 在Java代码中调用外部程序之前,首先需要确认可供调用的外部程序是否存在及可用。若存在,则可以直接在Java中通过执行外部程序的命令来进行调用,并获取相应的返回值;若不存在,则需要先进行程序安装或者确认是否已经加入环境变量中。 2. Java代码实现调用外部程序 使…

    Java 2023年5月19日
    00
  • 当 SQL Server(mssql-jdbc) 遇上 BigDecimal → 精度丢失,真坑!

    开心一刻   中午和哥们一起喝茶   哥们说道:晚上喝酒去啊   我:不去,我女朋友过生日   哥们瞪大眼睛看着我:你有病吧,充气的过什么生日   我生气到:有特么生产日期的好吧 需求背景   系统对接了外部系统,调用外部系统的接口需要付费,一个接口一次调用付费 0.03 元   同一个月内,同一个接口最高付费 25 元   统计每个月的付费情况   需求清…

    Java 2023年4月28日
    00
合作推广
合作推广
分享本页
返回顶部