欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Spring Boot使用Druid连接池的示例代码

程序员文章站 2023-12-18 15:47:22
druid是java语言中最好的数据库连接池。druid相比于其他的数据库连接池,有两大特性: 监控数据库,有利于分析线上数据库问题 更容易扩展,同时也很高...

druid是java语言中最好的数据库连接池。druid相比于其他的数据库连接池,有两大特性:

  1. 监控数据库,有利于分析线上数据库问题
  2. 更容易扩展,同时也很高效。

今天演示一下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>

Spring Boot使用Druid连接池的示例代码

配置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;
 }
}

运行查看效果

Spring Boot使用Druid连接池的示例代码

Spring Boot使用Druid连接池的示例代码

Spring Boot使用Druid连接池的示例代码

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)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

上一篇:

下一篇: