关注“Java后端技术全栈”**
回复“面试”获取全套大厂面试材料
Druid 介绍
Druid 是阿里巴巴开源平台上的一个我的项目,整个我的项目由数据库连接池、插件框架和 SQL 解析器组成,该我的项目次要是为了扩大 JDBC 的一些限度,能够让程序员实现一些非凡的需要,比方向密钥服务申请凭证、统计 SQL 信息、SQL 性能收集、SQL 注入查看、SQL 翻译等,程序员能够通过定制来实现本人须要的性能。通常叫"德鲁伊的"
Druid 首先是一个数据库连接池,但它不仅仅是一个数据库连接池,还蕴含了一个 ProxyDriver,一系列内置的 JDBC 组件库,一个 SQL Parser。在 Java 的世界中 Druid 是监控做的最好的数据库连接池,在性能、性能、扩展性方面,也有不错的体现。
Druid 有何用?
- 替换其余 Java 连接池,Druid 提供了一个高效、功能强大、可扩展性好的数据库连接池。
- 能够监控数据库拜访性能,Druid 内置提供了一个功能强大的 StatFilter 插件,可能具体统计 SQL 的执行性能,这对于线上剖析数据库拜访性能有很大帮忙。
- 数据库明码加密。间接把数据库明码写在配置文件中,这是不好的行为,容易导致平安问题,DruidDruiver 和 DruidDataSource 都反对 PasswordCallback。
- SQL 执行日志,Druid 提供了不同的 LogFilter,可能反对 Common-Logging、Log4j 和 JdkLog,能够按须要抉择相应的 LogFilter,监控利用的数据库拜访状况。
- 扩大 JDBC,如果你要对 JDBC 层有编程的需要,能够通过 Druid 提供的 Filter 机制,很不便编写 JDBC 层的扩大插件。
Spring Boot疾速集成Druid
阿里也未Druid提供了 Spring Boot Starter。官网这样解释:
Druid Spring Boot Starter 用于帮忙你在 Spring Boot 我的项目中轻松集成 Druid 数据库连接池和监控。
Druid Spring Boot Starter 次要做了哪些事件呢?其实这个组件包很简略,次要提供了很多自动化的配置,依照 Spring Boot 的理念对很多内容进行了预配置,让咱们在应用的时候更加的简略和不便。
增加依赖包
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.10</version></dependency><!--自启动Druid治理后盾--><dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10</version></dependency>
application.properties中增加druid的配置项
properties#config druid#连接池的设置#初始化时建设物理连贯的个数spring.datasource.druid.initial-size=5#最小连接池数量spring.datasource.druid.min-idle=5#最大连接池数量 maxIdle曾经不再应用spring.datasource.druid.max-active=20#获取连贯时最大等待时间,单位毫秒spring.datasource.druid.max-wait=60000#申请连贯的时候检测,如果闲暇工夫大于timeBetweenEvictionRunsMillis,执行validationQuery检测连贯是否无效。spring.datasource.druid.test-while-idle=true#既作为检测的间隔时间又作为testWhileIdel执行的根据spring.datasource.druid.time-between-eviction-runs-millis=60000#销毁线程时检测以后连贯的最初流动工夫和以后时间差大于该值时,敞开以后连贯spring.datasource.druid.min-evictable-idle-time-millis=30000#用来检测连贯是否无效的sql 必须是一个查问语句#mysql中为 select 'x'#oracle中为 select 1 from dualspring.datasource.druid.validation-query=select 'x'#申请连贯时会执行validationQuery检测连贯是否无效,开启会升高性能,默认为truespring.datasource.druid.test-on-borrow=false#偿还连贯时会执行validationQuery检测连贯是否无效,开启会升高性能,默认为truespring.datasource.druid.test-on-return=false#当数据库抛出不可复原的异样时,摈弃该连贯#spring.datasource.druid.exception-sorter=true#是否缓存preparedStatement,mysql5.5+倡议开启#spring.datasource.druid.pool-prepared-statements=true#当值大于0时poolPreparedStatements会主动批改为truespring.datasource.druid.max-pool-prepared-statement-per-connection-size=20#配置扩大插件spring.datasource.druid.filters=stat,wall#通过connectProperties属性来关上mergeSql性能;慢SQL记录spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500#合并多个DruidDataSource的监控数据spring.datasource.druid.use-global-data-source-stat=true#设置拜访druid监控页的账号和明码,默认没有#spring.datasource.druid.stat-view-servlet.login-username=admin#spring.datasource.druid.stat-view-servlet.login-password=admin
而后启动我的项目。
拜访地址:http://localhost:8080/druid/webapp.html
如果把配置项中
spring.datasource.druid.stat-view-servlet.login-username=adminspring.datasource.druid.stat-view-servlet.login-password=admin
去掉正文,再次启动。
拜访地址:http://localhost:8080/druid/webapp.html
登录进去
首页会展现我的项目应用的 JDK 版本、数据库驱动、JVM 相干统计信息。依据下面的菜单能够看出 Druid 的性能十分弱小,反对数据源、SQL 监控、SQL 防火墙、URI 监控等很多性能。
咱们这里申请一下后面文
http://localhost:8080/mybatis
点击SQL监控
能够看到SQL的执行状况,还能够设置刷新SQL监控的工夫。
这里的 SQL 监控会将我的项目中具体执行的 SQL 打印进去,展现此 SQL 执行了多少次、每次返回多少数据、执行的工夫散布是什么。这些性能十分的实用,不便咱们在理论生产中查找出慢 SQL,最初对 SQL 进行调优。
OK,明天就分享到此,是不是感觉Spring Boot集成Druid其实还是蛮简略的。
码字不易,望点 在看+分享,谢谢!
举荐浏览
如何优雅的导出 Excel
终于明确为什么要加 final 关键字了!