阿里巴巴Druid数据库连接池的使用
准备:
创建一个基于SpringBoot的web项目
1 引入相关依赖
jpa、mysql、druid
- <?xml version="1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>cn.xiangxu</groupId>
- <artifactId>qcbx</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <packaging>jar</packaging>
- <name>qcbx</name>
- <description>Demo project for Spring Boot</description>
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>1.5.9.RELEASE</version>
- <relativePath/> <!-- lookup parent from repository -->
- </parent>
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
- <java.version>1.8</java.version>
- </properties>
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- <!--数据库相关-->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-data-jpa</artifactId>
- </dependency>
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <scope>runtime</scope>
- </dependency>
- <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>druid</artifactId>
- <version>1.0.18</version>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-test</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- </plugin>
- </plugins>
- </build>
- </project>
2 配置数据库连接信息
- server: # 服务配置
- port: 80
- # context-path: /dev
- spring:
- datasource: # 数据库连接池配置
- driver-class-name: com.mysql.jdbc.Driver
- url: jdbc:mysql://127.0.0.1:3306/springdemo?useUnicode=true&characterEncoding=UTF-8
- username: root
- password: asdf
- type: com.alibaba.druid.pool.DruidDataSource
- #配置监控统计拦截的filters,去掉后监控界面sql将无法统计,'wall'用于防火墙
- filters: stat, wall, log4j
- #最大活跃数
- maxActive: 20
- #初始化数量
- initialSize: 1
- #最大连接等待超时时间
- maxWait: 60000
- #打开PSCache,并且指定每个连接PSCache的大小
- poolPreparedStatements: true
- maxPoolPreparedStatementPerConnectionSize: 20
- #通过connectionProperties属性来打开mergeSql功能;慢SQL记录
- connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
- minIdle: 1
- timeBetweenEvictionRunsMillis: 60000
- minEvictableIdleTimeMillis: 300000
- validationQuery: select 1 from dual
- testWhileIdle: true
- testOnBorrow: false
- testOnReturn: false
- # filters: stat
- jpa: # jpa配置
- hibernate:
- # ddl-auto: create # 会在首次启动的时候根据相应的实体类在数据库中创建相应的表,如果之前有表了,就会删掉在重建
- # ddl-auto: update # 如果没有表会创建,有表会对表结构进行修改
- # ddl-auto:create-drop # 应用停下来时会将表删掉
- ddl-auto: none # 什么都不做(默认值)
- # ddl-auto: validate # 检查实体类字段和表字段是否一致,如果不一致就会报错
- show-sql: true # 执行数据库操作时会打印出相应的SQL语句
- # mvc:
- # view: # jsp文件路径设置
- # prefix: /WEB-INF/jsp/ # jsp视图前缀
- # suffix: .jsp # jsp视图后缀
- http:
- multipart: # 上传文件大小设置
- max-file-size: 1024Mb # 设置最大上传大小
- max-request-size: 2048Mb # 设置最大请求大小
- # redis: # rediss缓存设置
- # host: 127.0.0.1 # 监听IP地址
- # port: 6379 # 端口号
- # pool:
- # max-idle: 20
- # min-idle: 1
- # max-active: 20
- # max-wait: 60000
- # database: 0
- logging: # 日志配置
- level:
- # cn.xiangxu.spring.controller.logger: 'off' # 屏蔽掉相应包的日志控制台输出和日记文件保存
3 配置druid
- package cn.xiangxu.qcbx.configuration;
- import com.alibaba.druid.support.http.StatViewServlet;
- import com.alibaba.druid.support.http.WebStatFilter;
- import org.springframework.boot.web.servlet.FilterRegistrationBean;
- import org.springframework.boot.web.servlet.ServletRegistrationBean;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- /**
- * Druid配置
- */
- @Configuration
- public class DruidConfiguration {
- @Bean
- public ServletRegistrationBean statViewServlet(){
- //创建servlet注册实体
- ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
- //设置ip白名单
- servletRegistrationBean.addInitParameter("allow","127.0.0.1");
- //设置ip黑名单,如果allow与deny共同存在时,deny优先于allow
- servletRegistrationBean.addInitParameter("deny","192.168.0.19");
- //设置控制台管理用户
- servletRegistrationBean.addInitParameter("loginUsername","wys");
- servletRegistrationBean.addInitParameter("loginPassword","123456");
- //是否可以重置数据
- servletRegistrationBean.addInitParameter("resetEnable","false");
- return servletRegistrationBean;
- }
- @Bean
- public FilterRegistrationBean statFilter(){
- //创建过滤器
- FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
- //设置过滤器过滤路径
- filterRegistrationBean.addUrlPatterns("/*");
- //忽略过滤的形式
- filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
- return filterRegistrationBean;
- }
- }
4 启动成功效果
阿里巴巴Druid数据库连接池的使用的更多相关文章
- Druid数据库连接池配置
DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB ...
- Spring Boot [使用 Druid 数据库连接池]
导读 最近一段时间比较忙,以至于很久没有更新Spring Boot系列文章,恰好最近用到Druid, 就将Spring Boot 使用 Druid作为数据源做一个简单的介绍. Druid介绍: Dru ...
- 使用MyBatis集成阿里巴巴druid连接池(不使用spring)
在工作中发现mybatis默认的连接池POOLED,运行时间长了会报莫名其妙的连接失败错误.因此采用阿里巴巴的Druid数据源(码云链接 ,中文文档链接). mybatis更多数据源参考博客链接 . ...
- Spring Boot集成Druid数据库连接池
1. 前言 Druid数据库连接池由阿里巴巴开源,号称是java语言中最好的数据库连接池,是为监控而生的.Druid的官方地址是:https://github.com/alibaba/druid 通过 ...
- spring boot:配置druid数据库连接池(开启sql防火墙/使用log4j2做异步日志/spring boot 2.3.2)
一,druid数据库连接池的功能? 1,Druid是阿里巴巴开发的号称为监控而生的数据库连接池 它的优点包括: 可以监控数据库访问性能 SQL执行日志 SQL防火墙 2,druid的官方站: http ...
- springboot项目整合druid数据库连接池
Druid连接池是阿里巴巴开源的数据库连接池项目,后来贡献给Apache开源: Druid的作用是负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个: D ...
- Druid数据库连接池源码分析
上一篇文章重点介绍了一下Java的Future模式,最后意淫了一个数据库连接池的场景.本想通过Future模式来防止,当多个线程同时获取数据库连接时各自都生成一个,造成资源浪费.但是忽略了一个根本的功 ...
- Druid数据库连接池就这么简单
前言 本章节主要讲解Druid数据库连接池,为什么要学Druid数据库连接池呢?? 我的知识储备数据库连接池有两种->C3P0,DBCP,可是现在看起来并不够用阿~当时学习C3P0的时候,觉得这 ...
- Druid 数据库连接池
druid 数据库连接池 由阿里提供 步骤 1 导包 durid1.0.9 jar 包 2 定义配置文件 必须是 properties文件 名字任意 位置也任意 3 获得数据库连接池对象 通过 Dur ...
随机推荐
- 运用starling开发的手游FlappyBird
最近想向游戏方面发展,于是用starling做了一个简易版的FlappyBird,纯AS3开发,权当是技术学习.在发布之后才明白要发布一个没有版权的app是有多困难,审核了N遍之后终于通过审核,下面发 ...
- oss2模块和aliyun oss链接
安装oss pip install oss2 首先已经理解OSS 基本概念,如Bucket.Object.Endpoint.AccessKeyId和AccessKeySecret等. 下面介绍如何使用 ...
- hbase shell-namespace(命名空间指令)
hbase shell命名空间namespace篇: 1. alter_namespace (一般用于添加删除一个属性,很少使用) hbase(main)::> help 'alter_name ...
- 【JavaScript学习整理】DOM对象(location history screen navigator)
DOM: 描述网页各个组成部分之间的关系. parentNode: 父节点 childNode: 子节点 firstChild: 第一个子节点 lastChild: 最后一个子节点 nextSibli ...
- LINQ 学习路程 -- 查询操作 Average Count Max Sum
IList<, , }; var avg = intList.Average(); Console.WriteLine("Average: {0}", avg); IList ...
- Java强引用、 软引用、 弱引用、虚引用
Java强引用. 软引用. 弱引用.虚引用 2012-07-09 1.对象的强.软.弱和虚引用 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象.也 ...
- Java -- AWT , GUI图形界面
1. AWT 容器继承关系 示例1: public class Main { public static void main(String[] args) throws Exception { Fra ...
- Oracle数据库定义语言(DDL)
--使用Create遇见创建表 Create Table table_name ( column_name datatype [null|not null], column_name datatype ...
- java原生数据类型和引用类型
java 中String 是个对象,是引用类型基础类型与引用类型的区别是,基础类型只表示简单的字符或数字,引用类型可以是任何复杂的数据结构基本类型仅表示简单的数据类型,引用类型可以表示复杂的数据类型, ...
- matlab之viscircles()函数
函数功能:画圆 语法: viscircles(centers,radii) viscircles(ax,centers,radii) viscircles(___,Name,Value) h = vi ...