什么是Druid?

Druid首先是Java语言中最好的数据库连接池,也是阿里巴巴的开源项目。Druid是阿里巴巴开发的号称为监控而生的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource等等等,秒杀一切。而且Druid已经在阿里巴巴部署了超过600个应用,经过好几年年生产环境大规模部署的严苛考验!

filters: stat,wall,log4j

stat:Druid内置提供一个StatFilter,用于统计监控信息。如果需要配置访问页面可以参考,https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatViewServlet%E9%85%8D%E7%BD%AE,我还没有研究这个,有研究的麻烦留意告诉一下,以后会找机会更新上来,毕竟很好用。
wall:Druid防御SQL注入攻击的WallFilter就是通过Druid的SQL Parser分析。Druid提供的SQL Parser可以在JDBC层拦截SQL做相应处理,比如说分库分表、审计等。
log4j:这个就是日志记录的功能,可以把sql语句打印到log4j供排查问题。

方式一、引入第三方druid包

  1. <dependency>
  2. <groupId>com.alibaba</groupId>
  3. <artifactId>druid</artifactId>
  4. <version></version>
  5. </dependency>

但这种在配置时需要手动配置DruidDataSource和监控,因在此过程中遇到ClassNotFound:DruidDataSource(jar正确被引用的情况下)以及其他的错误,所以没有使用这种方式

  1. /**
  2. * @Title: 数据源配置
  3. * @Description: TODO
  4. * @return DataSource
  5. * @author Sunny
  6. * @date 2018年10月31日 下午2:57:45
  7. * @throws
  8. */
  9. @Bean(name = "dataSource")
  10. @ConfigurationProperties(prefix = "spring.datasource")
  11. public DataSource druid(){
  12. // DruidDataSource dataSource = new DruidDataSource();
  13. // dataSource.setDriverClassName(env.getProperty("spring.datasource.driver-class-name"));
  14. // dataSource.setUrl(env.getProperty("spring.datasource.url"));
  15. // dataSource.setUsername(env.getProperty("spring.datasource.username"));
  16. // dataSource.setPassword(env.getProperty("spring.datasource.password"));
  17. // dataSource.setInitialSize(Integer.valueOf(env.getProperty("spring.datasource.initial-size")));
  18. // dataSource.setMinIdle(Integer.valueOf(env.getProperty("spring.datasource.min-idle")));
  19. // dataSource.setMaxActive(Integer.valueOf(env.getProperty("spring.datasource.max-active")));
  20. // dataSource.setMaxWait(Integer.valueOf(env.getProperty("spring.datasource.max-wait")));
  21. // return dataSource;
  22. return new DruidDataSource();
  23. }

方式二、引入druid-spring-boot-starter包

  1. <dependency>
  2. <groupId>com.alibaba</groupId>
  3. <artifactId>druid-spring-boot-starter</artifactId>
  4. <version></version>
  5. </dependency>

application.yml配置

  1. # 项目配置
  2. spring:
  3. application:
  4. name: provider-user
  5. datasource:
  6. username: root
  7. password:
  8. driver-class-name: com.mysql.cj.jdbc.Driver # mysql8.0以前使用com.mysql.jdbc.Driver
  9. url: jdbc:mysql://localhost:3306/enterprise?useUnicode=true&amp;useSSL=false&amp;characterEncoding=UTF-8&amp;serverTimezone=GMT%2B8
  10. #type: com.alibaba.druid.pool.DruidDataSource # 使用Druid数据源
  11. druid:
  12. initial-size: 5 # 初始化大小
  13. min-idle: 5 # 最小
  14. max-active: 100 # 最大
  15. max-wait: 60000 # 连接超时时间
  16. time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
  17. min-evictable-idle-time-millis: 300000 # 指定一个空闲连接最少空闲多久后可被清除,单位是毫秒
  18. validationQuery: select 'x'
  19. test-while-idle: true # 当连接空闲时,是否执行连接测试
  20. test-on-borrow: false # 当从连接池借用连接时,是否测试该连接
  21. test-on-return: false # 在连接归还到连接池时是否测试该连接
  22. filters: config,wall,stat # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
  23. poolPreparedStatements: true
  24. maxPoolPreparedStatementPerConnectionSize: 20
  25. maxOpenPreparedStatements: 20
  26. connectionProperties: druid.stat.slowSqlMillis=200;druid.stat.logSlowSql=true;config.decrypt=true
  27. web-stat-filter:
  28. enabled: true
  29. url-pattern: /*
  30. exclusions: /druid/*,*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico
  31. session-stat-enable: true
  32. session-stat-max-count: 10
  33. stat-view-servlet:
  34. enabled: true
  35. url-pattern: /druid/*
  36. reset-enable: true
  37. login-username: admin
  38. login-password: admin

注意:spring-boot2中不要使用配置中注掉的type属性,会报错String不能转换为DataSource的错误

监测页面:http://localhost:端口/druid/index.html

【2.0】SpringBoot2配置Druid数据源及监控的更多相关文章

  1. SpringBoot系列七:SpringBoot 整合 MyBatis(配置 druid 数据源、配置 MyBatis、事务控制、druid 监控)

    1.概念:SpringBoot 整合 MyBatis 2.背景 SpringBoot 得到最终效果是一个简化到极致的 WEB 开发,但是只要牵扯到 WEB 开发,就绝对不可能缺少数据层操作,所有的开发 ...

  2. springboot配置Druid数据源

    springboot配置druid数据源 Author:SimpleWu springboot整合篇 前言 对于数据访问层,无论是Sql还是NoSql,SpringBoot默认采用整合SpringDa ...

  3. 配置 Druid 数据源及密码加密-SpringBoot 2.7 实战基础

    在SpringBoot中配置 Druid 数据源及密码加密的方法 前文集成 MyBatis Plus,实现了一组增删改查接口.在启动服务时,从控制台中可以看出 Spring Boot 默认使用 Hik ...

  4. spring boot配置druid数据源和监控配置

    直接上代码: 一.pom.xml中添加依赖 <dependency> <groupId>com.github.drtrang</groupId> <artif ...

  5. springboot 配置DRUID数据源

    druid 是阿里开源的数据库连接池. 开发时整合   druid 数据源过程. 1.修改pom.xml <dependency> <groupId>mysql</gro ...

  6. springboot2配置druid数据库连接池

    注意配置以下的依赖: <!-- 引入druid数据源--> <dependency> <groupId>com.alibaba</groupId> &l ...

  7. SpringBoot2 配置多数据源,整合MybatisPlus增强插件

    本文源码:GitHub·点这里 || GitEE·点这里 一.项目案例简介 1.多数据简介 实际的项目中,经常会用到不同的数据库以满足项目的实际需求.随着业务的并发量的不断增加,一个项目使用多个数据库 ...

  8. SpringBoot配置 druid 数据源配置 慢SQL记录

    spring: datasource: url: jdbc:mysql://127.0.0.12:3306/test?autoReconnect=true&useUnicode=true&am ...

  9. spring boot:配置shardingsphere(sharding jdbc)使用druid数据源(druid 1.1.23 / sharding-jdbc 4.1.1 / mybatis / spring boot 2.3.3)

    一,为什么要使用druid数据源? 1,druid的优点 Druid是阿里巴巴开发的号称为监控而生的数据库连接池 它的优点包括: 可以监控数据库访问性能 SQL执行日志 SQL防火墙 但spring ...

随机推荐

  1. shell 脚本的编写

    创建一个shell文件 1. 创建一个.sh文件 2. 文件第一行声明shell编译器路径  #!/bin/bash 3. 修改文件权限 chmod 777 文件名    或  /bin/bash  ...

  2. HTML、CSS知识点,面试开发都会需要--No.1 HTML

    No.1   HTML 1.网页结构 网页结构一般都包含文档声明DOCTYPE,并且在head中的meta应该包含编码格式.关键字.网页描述信息.简单格式如下: <!DOCTYPE html&g ...

  3. GitHub 设置首页显示 404 There isn't a GitHub Pages site here.

    问题如题! 能使用的必要条件是: 1.创建的仓库 Code 中 必须 有 README.md 文件,内容自定 2.设置模板在仓库中 Settings -->GitHub Pages --> ...

  4. 线段树合并 || BZOJ 5457: 城市

    题面:https://www.lydsy.com/JudgeOnline/problem.php?id=5457 题解: 线段树合并,对于每个节点维护sum(以该节点为根的子树中最大的种类和)和kin ...

  5. Tensorflow 的saved_model模块学习

    saved_model模块主要用于TensorFlow Serving.TF Serving是一个将训练好的模型部署至生产环境的系统,主要的优点在于可以保持Server端与API不变的情况下,部署新的 ...

  6. SQL中exsit和in

    本周在做ETL的时候踩了个小坑 A表中数据有18条,有字段UserID B表与A表结构相同,但只有16条数据(手动删除2条,更改2条UserID为不重复的其他值) 当 Select UserID fr ...

  7. Centos下搭建邮件服务器

    一.协议 SMTP:用于发送邮件 POP3:用于接收邮件,接收后会将服务器上邮件删除 IMAP:用于接收邮件,接收后不会删除服务器邮件 二.几个重要的角色 MUA:可以理解为收取邮件的工具,比如thu ...

  8. 20190404 Oracle忘记登陆密码

    记忆力不好,总是忘记Oracle账号的登陆密码 修改方式 Windows cmd 登陆修改后的密码即可

  9. Django进阶之查询优化、extra注入SQL及批量创建

    Django查询优化 Django的查询优化用到两个函数——select_related()和prefetch_related(). select_related()用的是连表join的方式,主要处理 ...

  10. css设置input获得焦点的样式

    input:focus{ 样式; } 这样就ok