当前位置:   article > 正文

SpringBoot配置druid数据源_spring.datasource.type=druid

spring.datasource.type=druid

前言

对于数据访问层,无论是Sql还是NoSql,SpringBoot默认采用整合SpringData的方式进行统一管理,添加大量的自动配置,屏蔽了很多设置。引入了各种XxxTemplate和XxxRepository来简化我们队数据访问层的操作。

SpringBoot2.0默认是用com.zaxxer.hikari.HikariDataSource作为数据源。

2.0以下默认采用的是org.apache.tomcat.jdbc.pool.DataSource作为数据源。

Hikari的官方网站:http://brettwooldridge.github.io/HikariCP/

Hikari号称JAVA领域中最快的数据连接池,你可去点连接进去看看,第一行就是说他自己多么厉害,秒杀什么什么的,不过再快我也觉得没有阿里巴巴奉献给apache的Druid好,因为阿里巴巴的服务周到,里面有监控中心,可以帮助我们快速定位慢sql等。

Druid官方网站:http://druid.io/

使用Druid数据源,它是阿里巴巴开发的一个数据库连接池

Apache Druid(Incubating) - 面向列的分布式数据存储,非常适合为交互式应用程序提供动力

虽然HikariDataSource性能非常高,但是阿里的druid数据源配有成套的数据源管理软件,开发中使用的更多。

以往我们都是直接引入Druid的依赖:

  1. <dependency>
  2. <groupId>com.alibaba</groupId>
  3. <artifactId>druid</artifactId>
  4. <version>1.1.4</version>
  5. </dependency>
  1. 但是面对这么火爆的Druid,
  2. SpringBoot并没有直接对Druid的启动器而是需要我们自己整合,
  3. apache中4个月前已经出了一套完美支持SpringBoot的方案所以说我们不使用上面的依赖而是使用:
  1. <dependency>
  2. <groupId>com.alibaba</groupId>
  3. <artifactId>druid-spring-boot-starter</artifactId>
  4. <version>1.1.10</version>
  5. </dependency>

配置YML文件,具体的参数配置可以去官网看看:

  1. server.port=8080
  2. ### MySQL连接信息---------------------
  3. spring.datasource.url=jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=UTC
  4. spring.datasource.username=root
  5. spring.datasource.password=root
  6. spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
  7. # 数据源配置--------------------------------------
  8. spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
  9. #初始化时建立物理连接的个数
  10. spring.datasource.druid.initial-size=3
  11. #最小连接池数量
  12. spring.datasource.druid.min-idle=3
  13. #最大连接池数量
  14. spring.datasource.druid.max-active=10
  15. #获取连接时最大等待时间
  16. spring.datasource.druid.max-wait=60000
  17. #配置监控页面访问登录名称
  18. spring.datasource.druid.stat-view-servlet.login-username=admin
  19. #配置监控页面访问密码
  20. spring.datasource.druid.stat-view-servlet.login-password=admin
  21. #是否开启慢sql查询监控
  22. spring.datasource.druid.filter.stat.log-slow-sql=true
  23. #慢SQL执行时间
  24. spring.datasource.druid.filter.stat.slow-sql-millis=1
  25. spring.main.allow-bean-definition-overriding=true

 

Druid的最强大之处在于它有着强大的监控,可以监控我们发送到数据库的所有sql语句。方便我们后期排插错误。

我们接着在DruidDataSource里面配置监控中心:

  1. package com.example.common.filter;
  2. import com.alibaba.druid.pool.DruidDataSource;
  3. import com.alibaba.druid.support.http.StatViewServlet;
  4. import com.alibaba.druid.support.http.WebStatFilter;
  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 javax.sql.DataSource;
  11. /**
  12. * 通过代码的方式注册servlet,filter
  13. */
  14. @Configuration
  15. public class DruidConfiguration
  16. {
  17. /**
  18. * 注册servlet
  19. * @return
  20. * @author SimpleWu
  21. */
  22. @Bean
  23. public ServletRegistrationBean statViewServlet() {
  24. //注册servlet
  25. ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
  26. // 添加IP白名单
  27. servletRegistrationBean.addInitParameter("allow", "127.0.0.1");
  28. // 添加IP黑名单,当白名单和黑名单重复时,黑名单优先级更高
  29. servletRegistrationBean.addInitParameter("deny", "127.0.0.1");
  30. // 添加控制台管理用户
  31. servletRegistrationBean.addInitParameter("loginUsername", "admin");
  32. servletRegistrationBean.addInitParameter("loginPassword", "123456");
  33. // 是否能够重置数据
  34. servletRegistrationBean.addInitParameter("resetEnable", "false");
  35. return servletRegistrationBean;
  36. }
  37. /**
  38. * 注册过滤器
  39. *
  40. * @return
  41. */
  42. @Bean
  43. public FilterRegistrationBean statFilter() {
  44. //注册过滤器
  45. FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
  46. // 添加过滤规则
  47. filterRegistrationBean.addUrlPatterns("/*");
  48. // 忽略过滤格式
  49. filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/,");
  50. return filterRegistrationBean;
  51. }
  52. @Bean
  53. @ConfigurationProperties(prefix = "spring.datasource")
  54. public DataSource druidDataSource() {
  55. return new DruidDataSource();
  56. }
  57. }

配置完后我们启动SpringBoot程序访问:

http://localhost:8080/druid/index.html 就可以来到我们的登录页面面就是我们上面添加的控制台管理用户

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/46588
推荐阅读
相关标签
  

闽ICP备14008679号