SpringBoot Druid整合,SpringBoot 集成Druid

================================

©Copyright 蕃薯耀 2018年4月8日

http://www.cnblogs.com/fanshuyao/

源代码下载见:http://fanshuyao.iteye.com/blog/2415353

一、SpringBoot引入Druid的依赖包

  1. <dependency>
  2. <groupId>mysql</groupId>
  3. <artifactId>mysql-connector-java</artifactId>
  4. <scope>runtime</scope>
  5. </dependency>
  6. <dependency>
  7. <groupId>com.alibaba</groupId>
  8. <artifactId>druid</artifactId>
  9. <version>1.1.9</version>
  10. </dependency>

二、设置配置文件application.properties

  1. spring.datasource.url=jdbc:mysql://192.168.1.166:3306/study
  2. spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  3. spring.datasource.username=root
  4. spring.datasource.password=root
  5. spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
  6. #spring.datasource.schema=
  7. #数据源其他配置,需要增加Druid的配置类(不然不生效)
  8. #配置见:com.lqy.springboot.datasource.druid.DruidConfig
  9. spring.datasource.initialSize=5
  10. spring.datasource.minIdle=5
  11. spring.datasource.maxActive=20
  12. spring.datasource.maxWait=60000
  13. spring.datasource.timeBetweenEvictionRunsMillis=60000
  14. spring.datasource.minEvictableIdleTimeMillis=300000
  15. spring.datasource.validationQuery=SELECT 1 FROM DUAL
  16. spring.datasource.testWhileIdle=true
  17. spring.datasource.testOnBorrow=false
  18. spring.datasource.testOnReturn=false
  19. spring.datasource.poolPreparedStatements=true
  20. #配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
  21. spring.datasource.filters=stat,wall,log4j
  22. spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
  23. spring.datasource.useGlobalDataSourceStat=true
  24. spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

三、增加Druid自定义配置类

为什么要增加呢?

因为SpringBoot本身提供的配置只是部分的数据库连接配置,很多Druid需要的属性配置是没有的,如:

  1. spring.datasource.initialSize

这个属性,SpringBoot是没有的,只有Druid才有,所以需要增加相应的配置类,自动注入。

DruidConfig 类

  1. import java.util.Arrays;
  2. import java.util.HashMap;
  3. import java.util.Map;
  4. import javax.sql.DataSource;
  5. import org.springframework.boot.context.properties.ConfigurationProperties;
  6. import org.springframework.boot.web.servlet.FilterRegistrationBean;
  7. import org.springframework.boot.web.servlet.ServletRegistrationBean;
  8. import org.springframework.context.annotation.Bean;
  9. import org.springframework.context.annotation.Configuration;
  10. import com.alibaba.druid.pool.DruidDataSource;
  11. import com.alibaba.druid.support.http.StatViewServlet;
  12. import com.alibaba.druid.support.http.WebStatFilter;
  13. /**
  14. * 导入druid数据源,扩展相关的配置属性
  15. *
  16. */
  17. @Configuration
  18. public class DruidConfig {
  19. /**
  20. * 配置Druid的属性,和DataSource进行绑定,前缀设置为:spring.datasource
  21. * 不配置的话,很多初始化的属性是没有绑定的
  22. * @return
  23. */
  24. @Bean
  25. @ConfigurationProperties(prefix="spring.datasource")
  26. public DataSource druid() {
  27. return new DruidDataSource();
  28. }
  29. /**
  30. * 配置druid监控
  31. * 配置一个管理后台的servlet
  32. * 访问地址:http://localhost:8080/druid/
  33. * @return
  34. */
  35. @Bean
  36. public ServletRegistrationBean statViewServlet() {
  37. ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
  38. Map<String, String> initParameters = new HashMap<String, String>();
  39. initParameters.put("loginUsername", "admin");//属性见:com.alibaba.druid.support.http.ResourceServlet
  40. initParameters.put("loginPassword", "123456");
  41. initParameters.put("allow", "");//默认允许所有
  42. initParameters.put("deny", "");
  43. bean.setInitParameters(initParameters);
  44. return bean;
  45. }
  46. /**
  47. * 配置一个web监控的filter
  48. * @return
  49. */
  50. @Bean
  51. public FilterRegistrationBean webStatFilter() {
  52. FilterRegistrationBean filterBean = new FilterRegistrationBean();
  53. filterBean.setFilter(new WebStatFilter());
  54. filterBean.setUrlPatterns(Arrays.asList("/*"));
  55. Map<String, String> initParameters = new HashMap<String, String>();
  56. initParameters.put("exclusions", "*.js,*.css,/druid/*");//属性见:com.alibaba.druid.support.http.WebStatFilter
  57. filterBean.setInitParameters(initParameters);
  58. return filterBean;
  59. }
  60. }

 四、启动项目,测试数据源连接:

  1. import java.sql.Connection;
  2. import java.sql.SQLException;
  3. import javax.sql.DataSource;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.web.bind.annotation.RequestMapping;
  6. import org.springframework.web.bind.annotation.RestController;
  7. @RestController
  8. public class DataSourceController {
  9. @Autowired
  10. private DataSource dataSource;
  11. @RequestMapping("/dataSource")
  12. public String dataSource() {
  13. try {
  14. System.out.println("dataSource = "+dataSource);
  15. Connection conn = dataSource.getConnection();
  16. System.out.println("conn = "+conn);
  17. return "success";
  18. } catch (SQLException e) {
  19. e.printStackTrace();
  20. }
  21. return "end.";
  22. }
  23. }

五、查看Druid的监控

浏览器打开:http://localhost:8080/druid

登录的账号密码在DruidConfig类配置有

================================

©Copyright 蕃薯耀 2018年4月8日

http://www.cnblogs.com/fanshuyao/

SpringBoot Druid整合,SpringBoot 集成Druid的更多相关文章

  1. Springboot:整合Mybaits和Druid【监控】(十一)

    MyBatis默认提供了一个数据库连接池PooledDataSource,在此我们使用阿里提供的Druid数据库连接池 项目下载:https://files.cnblogs.com/files/app ...

  2. 小白的springboot之路(五)、集成druid

    0-前言 Druid阿里巴巴开源的一个java数据库连接池,是Java语言中最好的数据库连接池,Druid能够提供强大的监控和扩展功能:集成它能够方便我们对数据库连接进行监控和分析,下面我们来集成它: ...

  3. spring + Mybatis + pageHelper + druid 整合源码分享

    springMvc + spring + Mybatis + pageHelper + druid 整合 spring 和druid整合,spring 整合druid spring 和Mybatis  ...

  4. SpringBoot:整合Druid、MyBatis

    目录 简介 JDBC 导入依赖 连接数据库 CRUD操作 自定义数据源 DruidDataSource Druid 简介 配置数据源 配置 Druid 数据源监控 配置 Druid web 监控 fi ...

  5. springBoot(13)---整合Druid实现多数据源和可视化监控

    SpringBoot整合Druid实现多数据源和可视化监控 先献上github代码地址:https://github.com/yudiandemingzi/springboot-manydatasou ...

  6. SpringBoot入门教程(十五)集成Druid

    Druid是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB ...

  7. springboot集成druid+mybatis连接oracle数据库

    2.1.配置 druid 数据源 2. 随后要进行druid 的数据源的配置,如果要想使用druid 的数据源,那么首先一定要去修改 pom.xml 配置文件,引入以下包: oracle官网下载 oj ...

  8. SpringBoot入门之集成Druid

    Druid:为监控而生的数据库连接池.这篇先了解下它的简单使用,下篇尝试用它做多数据源配置.主要参考:https://github.com/alibaba/druid/wiki/常见问题 https: ...

  9. spring-boot 速成(8) 集成druid+mybatis

    spring-boot与druid.mybatis集成(包括pageHelper分页插件), 要添加以下几个依赖项: compile('mysql:mysql-connector-java:6.0.5 ...

随机推荐

  1. windows 64位环境下php执行环境部署配置

    1.下载安装包 地址可以网上找,我下载的是php-5.6.27-Win32-VC11-x64.zip 2.解压安装包,我的解压到D:\tools\php5.6 3.配置php.ini 在解压的目录中, ...

  2. c# sqlite 数据库加密

    c# sqlite 数据库加密 2010-05-29 10:55 用了ADO.NET 2.0 SQLite Data Provider这样可以直接利用它来创建一个加密的sqlite数据库.有关c#代码 ...

  3. Ftrace使用指南及跟踪系统调用

    http://vonnyfly.github.io/2013/06/24/ftraceshi-yong-zhi-nan/

  4. js实现的map方法

    /** * * 描述:js实现的map方法 * @returns {Map} */ function Map(){ var struct = function(key, value) { this.k ...

  5. Unity3D MonoBehaviour的生命周期(lifecycle)

    官方的事件函数的执行顺序中有详解(Link:Execution Order of Event Functions) (图片来源:http://whatiseeinit.blogspot.com/201 ...

  6. 加密入门(三):TrueCrypt(转)

    http://terrychen.info/encryption-truecrypt/ TrueCrypt 是一款功能强大的开源加密工具,利用 TrueCrypt 可以创建一个加密文件作为虚拟加密卷, ...

  7. docker安装hive笔记

    前两篇文章介绍了docker的基本命令如何安装hadoop 那么大家会比较了解docker的基本语法的安装过程.那么咱们今天来一起安装一下hive. 安装 1.下载gitHub,地址:https:// ...

  8. 解决 Docker pull 出现的net/http: TLS handshake timeout 的一个办法

    echo "DOCKER_OPTS=\"\$DOCKER_OPTS --registry-mirror=http://f2d6cb40.m.daocloud.io\"&q ...

  9. UAC 实现原理及绕过方法-打洞专用

    首页 新随笔 订阅 管理 随笔 - 7  文章 - 0  评论 - 0 UAC 实现原理及绕过方法   目录 0x01 UAC 实现方法(用户登陆过程)0x02 UAC 架构0x03 触发UAC0x0 ...

  10. Ubuntu18.04的网络管理netplan和防火墙ufw

    Netplan Ubuntu18.04使用的网络管理是netplan, 配置文件在/etc/netplan/下 刚安装完成的配置是这样的 刚安装完成的配置是这样的 network: ethernets ...