Spring Boot集成Druid连接池实战教程

3 下载量 145 浏览量 更新于2024-09-04 收藏 209KB PDF 举报
"这篇文章主要展示了如何在Spring Boot项目中集成并使用Druid数据库连接池,提供了相关的Maven依赖配置和Druid数据源的详细设置。通过集成Druid,可以实现对数据库的高效管理和监控。" 在Java开发中,Druid被认为是一种优秀的数据库连接池实现,因为它提供了强大的监控功能和高度可扩展性。Spring Boot集成Druid,能够帮助开发者更好地管理和优化数据库连接,提升应用程序的性能。 首先,我们需要在Maven项目的pom.xml文件中添加相应的依赖。对于Spring Boot 1.x版本,我们需要引入`spring-boot-starter-web`来提供Web服务支持,`spring-boot-starter-jdbc`用于基础的JDBC操作,以及`druid-spring-boot-starter`作为Druid连接池的启动依赖。确保指定的Druid版本与Spring Boot版本兼容。 ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.6</version> </dependency> ``` 接下来,配置Druid数据源。在Spring Boot的application.properties或application.yml文件中,我们需要设置`spring.datasource.type`为Druid的数据源类,并指定数据库驱动、连接池的基本参数,如初始化大小、最大活跃连接数、最小空闲连接数等。此外,还可以开启预编译语句(PreparedStatement)的复用,以及设置最大等待时间等。 ```properties # application.properties 示例 server.port=9011 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.druid.initial-size=5 spring.datasource.druid.max-active=10 spring.datasource.druid.min-idle=5 spring.datasource.druid.max-wait=60000 spring.datasource.druid.pool-prepared-statements=true spring.datasource.druid.max-pool-prepared-statements=20 ``` 或者使用YAML格式: ```yaml # application.yml 示例 server: port: 9011 spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.jdbc.Driver druid: initial-size: 5 max-active: 10 min-idle: 5 max-wait: 60000 pool-prepared-statements: true max-pool-prepared-statements: 20 ``` Druid的强大之处在于其丰富的监控功能。可以通过Web界面实时查看数据库连接池的状态,包括连接数量、SQL执行情况等。为了启用这个功能,还需要在Spring Boot的主配置类中添加一个`DruidStatViewServlet`和`DruidWebStatFilter`的配置。 ```java @Configuration public class DruidConfig { @Bean public ServletRegistrationBean<DruidStatViewServlet> druidStatViewServlet() { ServletRegistrationBean<DruidStatViewServlet> bean = new ServletRegistrationBean<>(new DruidStatViewServlet(), "/druid/*"); bean.addInitParameter("loginUsername", "admin"); bean.addInitParameter("loginPassword", "admin"); return bean; } @Bean public FilterRegistrationBean<DruidWebStatFilter> druidStatFilter() { FilterRegistrationBean<DruidWebStatFilter> filterRegistrationBean = new FilterRegistrationBean<>(); filterRegistrationBean.setFilter(new DruidWebStatFilter()); filterRegistrationBean.addUrlPatterns("/*"); filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"); return filterRegistrationBean; } } ``` 这样,当我们在浏览器中访问`http://localhost:9011/druid`时,就可以看到Druid的监控页面了,通过这个页面可以实时监控数据库连接池的运行状态,帮助我们排查和优化系统性能。 Spring Boot集成Druid连接池,不仅可以提供高效的数据库连接管理,还能通过监控功能帮助开发者及时发现和解决线上数据库的问题,是Java Web开发中的一个重要工具。