Spring Boot与Druid结合使用是一种强大的解决方案,不仅能够提升项目的性能,还能方便地进行SQL日志的打印。通过Druid,可以轻松实现对SQL执行过程的监控和统计,对于开发者调试和优化程序非常有帮助。下面,我们将重点介绍如何在Spring Boot中集成Druid,以打印SQL日志,并给出几种推荐的配置方式。
1. 添加Druid依赖
首先,在你的Spring Boot项目中,需要添加Druid的依赖。你可以在pom.xml中加入以下内容:

com.alibaba
druid-spring-boot-starter
1.2.8
这个依赖将会引入Druid的所有基本功能。同时,也能确保应用程序能顺利集成Druid管理的数据库连接池。
2. 配置Druid数据源
接下来,你需要在application.properties或application.yml中配置Druid的数据源。这里提供一个基本的MySQL数据源配置示例:
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://localhost:3306/yourdbname
spring.datasource.username=root
spring.datasource.password=yourpassword
# Druid配置
spring.datasource.druid.initial-size=5
spring.datasource.druid.min-idle=5
spring.datasource.druid.max-active=20
spring.datasource.druid.max-wait=60000
spring.datasource.druid.time-between-eviction-runs-millis=60000
spring.datasource.druid.min-evictable-idle-time-millis=3600000
以上配置帮助你建立一个Druid数据源,后续可以根据需求调整参数以满足特定的性能需求。
3. 开启SQL日志打印
为了查看SQL日志,Druid提供了多种方法。其中一种常用的方式是使用Druid的监控功能。在application.properties中添加以下配置:
spring.datasource.druid.filters=stat,log4j
spring.datasource.druid.connection-properties=configAchievement=1;configRds=1
# 配置日志输出
logging.level.com.alibaba.druid.sql=DEBUG
logging.level.com.alibaba.druid=ERROR
通过以上设置,Druid将会打印出SQL执行的详细信息,非常适合开发阶段的调试使用。
4. 监控与管理
Druid还提供了一个监控页面,可以通过设置路径快速访问。在application.properties文件中增加如下配置:
spring.datasource.druid.web-stat-filter.enabled=true
spring.datasource.druid.web-stat-filter.url-pattern=/*
spring.datasource.druid.web-stat-filter.session-stat-enable=true
spring.datasource.druid.web-stat-filter.exception-stat-enable=true
spring.datasource.druid.stat-view-servlet.enabled=true
spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
spring.datasource.druid.stat-view-servlet.allow=localhost
在完成这些配置后,访问 http://localhost:8080/druid/ 就能进入Druid的管理界面,查看SQL执行情况和其他资源监控信息。
5. 常见问题解答
如何验证Druid是否成功集成并打印SQL日志?
你可以运行应用程序并执行一些数据库操作,观察控制台输出。如果SQL日志信息正常打印,就证明集成成功。
如果程序没有打印出SQL日志,可能是什么原因?
可能原因包括日志级别配置不正确、Druid未正确集成,或应用程序未执行任何SQL操作。建议检查配置项并确保每个依赖都安装正确。
是否可以在生产环境中使用Druid的SQL日志打印功能?
虽然可以在生产环境中使用Druid,建议谨慎使用SQL日志打印,因为这可能会影响性能。通常在生产环境中可以选择仅在调试时使用,而在正常运行时将日志级别设置为更高的级别。