废话少说,按SpringBoot的老套路来。

【step1】:添加依赖

<!-- 数据库连接池  -->
<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.0.25</version>
</dependency>

【step2】:application.yml中添加对应配置

spring:datasource:driverClassName: com.mysql.jdbc.Driverurl: jdbc:mysql://对应自己的数据库连接
username: xxxpassword: xxx
######################### Druid连接池的配置信息  #################
spring.druid.initialSize:5#初始化连接大小
spring.druid.minIdle:5#最小连接池数量
spring.druid.maxActive:20#最大连接池数量
spring.druid.maxWait:60000#获取连接时最大等待时间,单位毫秒
spring.druid.timeBetweenEvictionRunsMillis:60000#配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.druid.minEvictableIdleTimeMillis:300000#配置一个连接在池中最小生存的时间,单位是毫秒
spring.druid.validationQuery: SELECT1FROM DUAL            #测试连接
spring.druid.testWhileIdle:true#申请连接的时候检测,建议配置为true,不影响性能,并且保证安全性
spring.druid.testOnBorrow:false#获取连接时执行检测,建议关闭,影响性能
spring.druid.testOnReturn:false#归还连接时执行检测,建议关闭,影响性能
spring.druid.poolPreparedStatements:false#是否开启PSCache,PSCache对支持游标的数据库性能提升巨大,oracle建议开启,mysql下建议关闭
spring.druid.maxPoolPreparedStatementPerConnectionSize:20#开启poolPreparedStatements后生效
spring.druid.filters: stat,wall,log4j                       #配置扩展插件,常用的插件有=>stat:监控统计  log4j:日志  wall:防御sql注入
spring.druid.connectionProperties:'druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000'  #通过connectProperties属性来打开mergeSql功能;慢SQL记录

【step3】:java代码中读取配置,并做相关转换(比如数据库密码加解密等,这里省略)

importjava.sql.SQLException;importjavax.sql.DataSource;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.boot.context.embedded.FilterRegistrationBean;importorg.springframework.boot.context.embedded.ServletRegistrationBean;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importorg.springframework.context.annotation.Primary;importcom.alibaba.druid.pool.DruidDataSource;importcom.alibaba.druid.support.http.StatViewServlet;importcom.alibaba.druid.support.http.WebStatFilter;@Configurationpublic classDruidConfiguration {@Value("${spring.datasource.url}")privateString url;@Value("${spring.datasource.username}")privateString username;@Value("${spring.datasource.password}")privateString password;@Value("${spring.datasource.driverClassName}")privateString driverClassName;@Value("${spring.druid.initialSize}")private intinitialSize;@Value("${spring.druid.minIdle}")private intminIdle;@Value("${spring.druid.maxActive}")private intmaxActive;@Value("${spring.druid.maxWait}")private intmaxWait;@Value("${spring.druid.timeBetweenEvictionRunsMillis}")private inttimeBetweenEvictionRunsMillis;@Value("${spring.druid.minEvictableIdleTimeMillis}")private intminEvictableIdleTimeMillis;@Value("${spring.druid.validationQuery}")privateString validationQuery;@Value("${spring.druid.testWhileIdle}")private booleantestWhileIdle;@Value("${spring.druid.testOnBorrow}")private booleantestOnBorrow;@Value("${spring.druid.testOnReturn}")private booleantestOnReturn;@Value("${spring.druid.poolPreparedStatements}")private booleanpoolPreparedStatements;@Value("${spring.druid.maxPoolPreparedStatementPerConnectionSize}")private intmaxPoolPreparedStatementPerConnectionSize;@Value("${spring.druid.filters}")privateString filters;@Value("{spring.druid.connectionProperties}")privateString connectionProperties;@Bean@PrimarypublicDataSource dataSource() {DruidDataSource datasource= newDruidDataSource();datasource.setUrl(url);datasource.setUsername(username);datasource.setPassword(password);//这里可以做加密处理
datasource.setDriverClassName(driverClassName);//configuration
datasource.setInitialSize(initialSize);datasource.setMinIdle(minIdle);datasource.setMaxActive(maxActive);datasource.setMaxWait(maxWait);datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);datasource.setValidationQuery(validationQuery);datasource.setTestWhileIdle(testWhileIdle);datasource.setTestOnBorrow(testOnBorrow);datasource.setTestOnReturn(testOnReturn);datasource.setPoolPreparedStatements(poolPreparedStatements);datasource.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);try{datasource.setFilters(filters);}catch(SQLException e) {}datasource.setConnectionProperties(connectionProperties);returndatasource;}@BeanpublicServletRegistrationBean statViewServlet(){ServletRegistrationBean servletRegistrationBean= new ServletRegistrationBean(new StatViewServlet(),"/druid/*");servletRegistrationBean.addInitParameter("allow","127.0.0.1");  //设置ip白名单servletRegistrationBean.addInitParameter("deny","192.168.0.19");//设置ip黑名单,优先级高于白名单//设置控制台管理用户servletRegistrationBean.addInitParameter("loginUsername","root");servletRegistrationBean.addInitParameter("loginPassword","root");//是否可以重置数据servletRegistrationBean.addInitParameter("resetEnable","false");returnservletRegistrationBean;}@BeanpublicFilterRegistrationBean statFilter(){//创建过滤器FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(newWebStatFilter());//设置过滤器过滤路径filterRegistrationBean.addUrlPatterns("/*");//忽略过滤的形式filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");returnfilterRegistrationBean;}
}

【step4】:测试

登录成功后如下:

转载于:https://www.cnblogs.com/funnyboy0128/p/9052447.html

【SpringBoot笔记】SpringBoot整合Druid数据连接池相关推荐

  1. 关于druid数据连接池抛出的 connection holder is null 异常

    大概跑了三十分钟~~~这配置~~~这程序~~~ 然后华丽丽的报异常了~~~ 具体异常是这样的, ? 1 2 3 4 5 6 7 8 9 10 11 12 13 DEBUG: (BaseJdbcLogg ...

  2. SpringBoot中数据连接池的配置(tomcat,HikariCP,dbcp2,druid)

    SpringBoot中数据连接池的配置(tomcat,HikariCP,dbcp2,druid) 文章目录 SpringBoot中数据连接池的配置(tomcat,HikariCP,dbcp2,drui ...

  3. 【Springboot 入门培训】#3 MyBatis 多数据源与缓存和数据连接池设置

    介绍MyBatis项目中如何配置多个数据源连接数据库,以及设置sql文的二级缓存功能,配置多数据源与数据连接池等功能.为大家开发和平时练习的时候提供参考和查询的工具文章. 代码下载百度网盘下载:htt ...

  4. Druid 德鲁伊连接池技术

    Druid 德鲁伊连接池技术 步骤: 去官网去下载一个德鲁伊的jar -> druid-1.0.9.jar 定义配置文件:使用properties文件类型的,名字随便起 手动加载配置文件信息: ...

  5. JdbcTemplate(1)(数据连接池)

    一.环境准备 1.1 导入JAR包 ①IOC容器所需要的JAR包 commons-logging-1.1.1.jar spring-beans-4.0.0.RELEASE.jar spring-con ...

  6. c3p0、dbcp、druid三大连接池对比

    转: c3p0.dbcp.druid三大连接池对比 转载于:https://www.cnblogs.com/littlelazy/p/10480552.html

  7. Druid 数据源连接池配置

    在 Spring Boot 的配置文件中对 Druid 数据源连接池进行配置 # Druid连接池的配置 spring:datasource:druid:initial-size: 5 #初始化连接大 ...

  8. Netbeans 中创建数据连接池和数据源步骤(及解决无法ping通问题)

    1.启动glassfish服务器, 在浏览器的地址栏中输入 http://localhost:4848 2.首先建立JDBC Connection Pools: 3.new 一个Connectio P ...

  9. mysql怎么连接数据连接池_Mysql数据库连接池

    一 开源数据连接池 1 dbcp dbcp可能是使用最多的开源连接池,原因大概是因为配置方便,而且很多开源和tomcat应用例子都是使用的这个连接池吧. 这个连接池可以设置最大和最小连接,连接等待时间 ...

最新文章

  1. 年度BCI奖 |THE ANNUAL BCI AWARD
  2. 青龙面板node-onebot 教程
  3. python 生成时间序列
  4. [BZOJ5249][九省联考2018]IIIDX(线段树)
  5. Matlab如何绘制散点图矩阵,不同版本的散点图矩阵
  6. VTK:隐式选择循环用法实战
  7. dataframe修改数据_利用Python进行数据分析(语法篇)
  8. Github开源之旅启程:GitHub 上部署网页
  9. Redis笔记5-redis高可用方案
  10. 说人话很难。。。。。。
  11. Springboot之idea之pom文件图标不对
  12. 2 最长上升子序列及其衍生
  13. 《开源安全运维平台-OSSIM最佳实践》将于2015年底出版
  14. Excel2003和Excel2007对下拉选择和下拉级联选择的操作以及java程序的调用
  15. 网贷逾期和信用卡逾期是一样的吗?
  16. 各种UML图的应用场景
  17. 2021.2.22学习总结
  18. java监听鼠标双击_java鼠标双击事件 java鼠标双击监听
  19. 云端应用典型应用场景
  20. 让WiFi更安全的新协议WPA3,再也不用担心妈妈的WiFi?

热门文章

  1. 砝码称重 洛谷 1441
  2. ES6入门之Generator函数
  3. CUDA在Debug下编译有错而Release下无错
  4. RUNOOB python练习题 39 数组排序
  5. python pandas dataframe基本使用整理
  6. 6.17 dokcer(一)Compose 简介
  7. JVM——类文件结构
  8. 语音对话系统的设计要点与多轮对话的重要性
  9. PostCSS 以及 cssnext语法
  10. Redis 3.0.1 安装和配置