【SpringBoot笔记】SpringBoot整合Druid数据连接池
废话少说,按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数据连接池相关推荐
- 关于druid数据连接池抛出的 connection holder is null 异常
大概跑了三十分钟~~~这配置~~~这程序~~~ 然后华丽丽的报异常了~~~ 具体异常是这样的, ? 1 2 3 4 5 6 7 8 9 10 11 12 13 DEBUG: (BaseJdbcLogg ...
- SpringBoot中数据连接池的配置(tomcat,HikariCP,dbcp2,druid)
SpringBoot中数据连接池的配置(tomcat,HikariCP,dbcp2,druid) 文章目录 SpringBoot中数据连接池的配置(tomcat,HikariCP,dbcp2,drui ...
- 【Springboot 入门培训】#3 MyBatis 多数据源与缓存和数据连接池设置
介绍MyBatis项目中如何配置多个数据源连接数据库,以及设置sql文的二级缓存功能,配置多数据源与数据连接池等功能.为大家开发和平时练习的时候提供参考和查询的工具文章. 代码下载百度网盘下载:htt ...
- Druid 德鲁伊连接池技术
Druid 德鲁伊连接池技术 步骤: 去官网去下载一个德鲁伊的jar -> druid-1.0.9.jar 定义配置文件:使用properties文件类型的,名字随便起 手动加载配置文件信息: ...
- JdbcTemplate(1)(数据连接池)
一.环境准备 1.1 导入JAR包 ①IOC容器所需要的JAR包 commons-logging-1.1.1.jar spring-beans-4.0.0.RELEASE.jar spring-con ...
- c3p0、dbcp、druid三大连接池对比
转: c3p0.dbcp.druid三大连接池对比 转载于:https://www.cnblogs.com/littlelazy/p/10480552.html
- Druid 数据源连接池配置
在 Spring Boot 的配置文件中对 Druid 数据源连接池进行配置 # Druid连接池的配置 spring:datasource:druid:initial-size: 5 #初始化连接大 ...
- Netbeans 中创建数据连接池和数据源步骤(及解决无法ping通问题)
1.启动glassfish服务器, 在浏览器的地址栏中输入 http://localhost:4848 2.首先建立JDBC Connection Pools: 3.new 一个Connectio P ...
- mysql怎么连接数据连接池_Mysql数据库连接池
一 开源数据连接池 1 dbcp dbcp可能是使用最多的开源连接池,原因大概是因为配置方便,而且很多开源和tomcat应用例子都是使用的这个连接池吧. 这个连接池可以设置最大和最小连接,连接等待时间 ...
最新文章
- 年度BCI奖 |THE ANNUAL BCI AWARD
- 青龙面板node-onebot 教程
- python 生成时间序列
- [BZOJ5249][九省联考2018]IIIDX(线段树)
- Matlab如何绘制散点图矩阵,不同版本的散点图矩阵
- VTK:隐式选择循环用法实战
- dataframe修改数据_利用Python进行数据分析(语法篇)
- Github开源之旅启程:GitHub 上部署网页
- Redis笔记5-redis高可用方案
- 说人话很难。。。。。。
- Springboot之idea之pom文件图标不对
- 2 最长上升子序列及其衍生
- 《开源安全运维平台-OSSIM最佳实践》将于2015年底出版
- Excel2003和Excel2007对下拉选择和下拉级联选择的操作以及java程序的调用
- 网贷逾期和信用卡逾期是一样的吗?
- 各种UML图的应用场景
- 2021.2.22学习总结
- java监听鼠标双击_java鼠标双击事件 java鼠标双击监听
- 云端应用典型应用场景
- 让WiFi更安全的新协议WPA3,再也不用担心妈妈的WiFi?