【2.0】SpringBoot2配置Druid数据源及监控
什么是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包
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version></version> </dependency>
但这种在配置时需要手动配置DruidDataSource和监控,因在此过程中遇到ClassNotFound:DruidDataSource(jar正确被引用的情况下)以及其他的错误,所以没有使用这种方式
/** * @Title: 数据源配置 * @Description: TODO * @return DataSource * @author Sunny * @date 2018年10月31日 下午2:57:45 * @throws */ @Bean(name = "dataSource") @ConfigurationProperties(prefix = "spring.datasource") public DataSource druid(){ // DruidDataSource dataSource = new DruidDataSource(); // dataSource.setDriverClassName(env.getProperty("spring.datasource.driver-class-name")); // dataSource.setUrl(env.getProperty("spring.datasource.url")); // dataSource.setUsername(env.getProperty("spring.datasource.username")); // dataSource.setPassword(env.getProperty("spring.datasource.password")); // dataSource.setInitialSize(Integer.valueOf(env.getProperty("spring.datasource.initial-size"))); // dataSource.setMinIdle(Integer.valueOf(env.getProperty("spring.datasource.min-idle"))); // dataSource.setMaxActive(Integer.valueOf(env.getProperty("spring.datasource.max-active"))); // dataSource.setMaxWait(Integer.valueOf(env.getProperty("spring.datasource.max-wait"))); // return dataSource; return new DruidDataSource(); }
方式二、引入druid-spring-boot-starter包
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version></version> </dependency>
application.yml配置
# 项目配置 spring: application: name: provider-user datasource: username: root password: driver-class-name: com.mysql.cj.jdbc.Driver # mysql8.0以前使用com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/enterprise?useUnicode=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=GMT%2B8 #type: com.alibaba.druid.pool.DruidDataSource # 使用Druid数据源 druid: initial-size: 5 # 初始化大小 min-idle: 5 # 最小 max-active: 100 # 最大 max-wait: 60000 # 连接超时时间 time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 min-evictable-idle-time-millis: 300000 # 指定一个空闲连接最少空闲多久后可被清除,单位是毫秒 validationQuery: select 'x' test-while-idle: true # 当连接空闲时,是否执行连接测试 test-on-borrow: false # 当从连接池借用连接时,是否测试该连接 test-on-return: false # 在连接归还到连接池时是否测试该连接 filters: config,wall,stat # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 poolPreparedStatements: true maxPoolPreparedStatementPerConnectionSize: 20 maxOpenPreparedStatements: 20 connectionProperties: druid.stat.slowSqlMillis=200;druid.stat.logSlowSql=true;config.decrypt=true web-stat-filter: enabled: true url-pattern: /* exclusions: /druid/*,*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico session-stat-enable: true session-stat-max-count: 10 stat-view-servlet: enabled: true url-pattern: /druid/* reset-enable: true login-username: admin login-password: admin
注意:spring-boot2中不要使用配置中注掉的type属性,会报错String不能转换为DataSource的错误
监测页面:http://localhost:端口/druid/index.html
【2.0】SpringBoot2配置Druid数据源及监控的更多相关文章
- SpringBoot系列七:SpringBoot 整合 MyBatis(配置 druid 数据源、配置 MyBatis、事务控制、druid 监控)
1.概念:SpringBoot 整合 MyBatis 2.背景 SpringBoot 得到最终效果是一个简化到极致的 WEB 开发,但是只要牵扯到 WEB 开发,就绝对不可能缺少数据层操作,所有的开发 ...
- springboot配置Druid数据源
springboot配置druid数据源 Author:SimpleWu springboot整合篇 前言 对于数据访问层,无论是Sql还是NoSql,SpringBoot默认采用整合SpringDa ...
- spring boot配置druid数据源和监控配置
直接上代码: 一.pom.xml中添加依赖 <dependency> <groupId>com.github.drtrang</groupId> <artif ...
- springboot 配置DRUID数据源
druid 是阿里开源的数据库连接池. 开发时整合 druid 数据源过程. 1.修改pom.xml <dependency> <groupId>mysql</gro ...
- springboot2配置druid数据库连接池
注意配置以下的依赖: <!-- 引入druid数据源--> <dependency> <groupId>com.alibaba</groupId> &l ...
- SpringBoot2 配置多数据源,整合MybatisPlus增强插件
本文源码:GitHub·点这里 || GitEE·点这里 一.项目案例简介 1.多数据简介 实际的项目中,经常会用到不同的数据库以满足项目的实际需求.随着业务的并发量的不断增加,一个项目使用多个数据库 ...
- SpringBoot配置 druid 数据源配置 慢SQL记录
spring: datasource: url: jdbc:mysql://127.0.0.12:3306/test?autoReconnect=true&useUnicode=true&am ...
- 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 ...
- Springboot 系列(九)使用 Spring JDBC 和 Druid 数据源监控
前言 作为一名 Java 开发者,相信对 JDBC(Java Data Base Connectivity)是不会陌生的,JDBC作为 Java 基础内容,它提供了一种基准,据此可以构建更高级的工具和 ...
随机推荐
- java继承、抽象和接口
package zdbExtends;public class Grandparent { public Grandparent(){ System.out ...
- Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别
sys和system用户区别 1)最重要的区别,存储的数据的重要性不同 sys所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己 ...
- 【bzoj3156】 防御准备
http://www.lydsy.com/JudgeOnline/problem.php?id=3156 (题目链接) 题意 给出n个防御节点,每个节点有两种选择,可以花费a[i]建立一个防御塔,或者 ...
- Lost Cows
Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9669 Accepted: 6228 Description N (2 ...
- 配置文件App.config的使用以及Readonly与Const的对比
以前我们学习的时候都把连接数据库的连接字符串写在一个类中,因为我们的数据库都在自己电脑上.如果更换数据库地址,需要更改这个类,然后重新编译才可以连接到数据库.现在我们需要将连接字符串当道一个文件中,然 ...
- 积累的VC编程小技巧之树操作
1.如何在TreeList中加图标? [问题提出] 请问treeview控件和treectrl控件的用法有何不同呢?向如何imagelist控件中加图象呀? [解决方法] 1) HICON ...
- Java基础7-异常;jar包
昨日内容回顾 多态:多种状态,多态的前提条件是继承或者是实现 面向接口编程 降低耦合度 接口是最低标准,接口可以多重继承 接口中的所有方法都是抽象方法 抽象类中可以没有抽象方法 匿名内部类对象 将对类 ...
- Class.jsp
<%@page import="java.util.Random"%> <%@ page language="java" contentTyp ...
- Linux内核的整体架构简介
1. 前言 本文是“Linux内核分析”系列文章的第一篇,会以内核的核心功能为出发点,描述Linux内核的整体架构,以及架构之下主要的软件子系统.之后,会介绍Linux内核源文件的目录结构,并和各个软 ...
- [2019校招] - Java多线程面试题总结
Object 的 wait()和notify() 方法 下图为线程状态的图: Object 对象中的 wait()和notify()是用来实现实现等待 / 通知模式.其中等待状态和阻塞状态是不同的.等 ...