Spring Boot使用Druid连接池的示例代码
程序员文章站
2023-12-21 08:56:46
druid是java语言中最好的数据库连接池。druid相比于其他的数据库连接池,有两大特性:
监控数据库,有利于分析线上数据库问题
更容易扩展,同时也很高...
druid是java语言中最好的数据库连接池。druid相比于其他的数据库连接池,有两大特性:
- 监控数据库,有利于分析线上数据库问题
- 更容易扩展,同时也很高效。
今天演示一下spring boot集成druid。
实战
1、添加maven依赖。
spring boot版本使用的是1.x的,2.x的版本druid starter还不支持。不过自定义也是没问题的。
<!--starter-web 方便我们查看效果--> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> </dependency> <!--使用mybatis也可以,druid提供的只是连接池--> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-jdbc</artifactid> </dependency> <dependency> <groupid>com.alibaba</groupid> <artifactid>druid-spring-boot-starter</artifactid> <version>1.1.6</version> </dependency>
配置druid
2、druid应用的配置。
server: port: 9011 spring: datasource: type: com.alibaba.druid.pool.druiddatasource driver-class-name: com.mysql.jdbc.driver druid: initial-size: 5 max-active: 10 min-idle: 5 max-wait: 60000 pool-prepared-statements: true max-pool-prepared-statement-per-connection-size: 20 validation-query: select 1 validation-query-timeout: 60000 test-on-borrow: false test-on-return: false test-while-idle: true time-between-eviction-runs-millis: 60000 filter: stat: log-slow-sql: true db-type: mysql slow-sql-millis: 2000 stat-view-servlet: login-username: druid login-password: druid allow: 127.0.0.1 url-pattern: /druid/* username: root password: 123456 url: jdbc:mysql://127.0.0.1:3306/test?characterencoding=utf-8
通过javabean的配置更灵活一些,我们通过javabean来配置。
@configuration public class druidconfig { @bean public jdbctemplate jdbctemplate(){ return new jdbctemplate(druiddatasource()); } // configurationproperties可以直接把应用配置的spring.datasource.druid属性开头的值注入到druiddatasource中 @configurationproperties(prefix = "spring.datasource.druid") @bean(initmethod = "init",destroymethod = "close") public druiddatasource druiddatasource(){ druiddatasource druiddatasource = new druiddatasource(); // 添加druid的监控过滤器,当前只演示监控的功能,因此只有一个过滤器,可以实现多个过滤器 linkedlist<filter> filterslist = new linkedlist(); filterslist.add(filter()); druiddatasource.setproxyfilters(filterslist); return druiddatasource; } @bean public filter filter(){ statfilter statfilter = new statfilter(); // sql执行时间超过2s种的被判定为慢日志 statfilter.setslowsqlmillis(2000); //显示慢日志 statfilter.setlogslowsql(true); //合并sql,有时,一些相同的慢日志过多影响阅读,开启合并功能 statfilter.setmergesql(true); return statfilter; } // 监控的面板 @bean public servletregistrationbean servletregistrationbean(){ // 注册自己的sevlet return new servletregistrationbean(new statviewservlet(),"/druid/*"); } }
3、新建sql执行测试
使用jdbcteplate选取数据库中的数据,我们只是演示druid的监控效果。
@restcontroller @springbootapplication public class daoapplication { public static void main(string[] args) { springapplication.run(daoapplication.class,args); } @autowired jdbctemplate jdbctemplate; @requestmapping("/test") public list test(){ final list<integer> idlist = new linkedlist<integer>(); jdbctemplate.query("select * from sh_test1", new rowcallbackhandler() { @override public void processrow(resultset rs) throws sqlexception { idlist.add(rs.getint(1)); } }); return idlist; } }
运行查看效果
5、演示完毕
到这一步,druid已经可以在spring boot中使用了,druid提供了很多监控的选项,文章篇幅有限, 只介绍一下druid集成spring boot的用法。
最后
这篇文章演示了一下druid在springboot中的使用。有关druid的使用请看下面的参考。
参考
[druid常见用法] (https://github.com/alibaba/druid/wiki/%e5%b8%b8%e8%a7%81%e9%97%ae%e9%a2%98)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。