0


Springboot集成 Druid

文章目录


Druid介绍

Druid是一个开源的数据库连接池和SQL查询优化工具,用于提高应用程序对数据库的性能和可扩展性。主要提供的功能:数据库连接池、数据库连接池监控、SQL查询优化、数据源管理、防御SQL注入、统计和监控。
注意:SpringBoot2.0默认是用com.zaxxer.hikari.HikariDataSource作为数据源。


一、Druid依赖选择

SpringBoot版本:2.7.12,所以此次选择的依赖是druid-spring-boot-starter,它基于传统的druid进行了封装,简化了配置,所以使用该依赖,同时引入log4j2的日志依赖,方便我们在监控时获取日志信息。

<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.18</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId></dependency>

二、Druid配置

基于application.yml进行配置

spring:application:name: druid-demo
  datasource:# 数据库相关配置driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/user
    username: root
    password: root
    druid:# 初始化连接数量initial-size:5# 最小线连接数量min-idle:5# 最大连接数量max-active:20# 获取连接时最大等待时间,单位毫秒max-wait:60000#销毁线程时检测当前连接的最后活动时间和当前时间差大于该值时,关闭当前连接min-evictable-idle-time-millis:30000#用来检测连接是否有效的sql 必须是一个查询语句#mysql中为 select 'x'#oracle中为 select 1 from dualvalidation-query: select 'x'
      #申请连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为truetest-on-borrow:false#归还连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为trutest-on-return:false# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙# 配置监拉统计挡成的filters. stat: 监控统计、Log4j:日志记录、waLL: 防御sqL注入filters: stat,wall,log4j2
      # 配置后台监控stat-view-servlet:# 允许访问的地址,这里因为时本地所以配置当前机器allow: 127.0.0.1
        # 是否开启访问enabled:true# 是否能够重置数据reset-enable:false# 管理页面登陆的用户名login-username: admin
        # 管理页面登陆的密码login-password: admin

上面就是druid的基本配置,可以看到相较于传统的配置👇(不需要配置,仅仅作为对比)方式:

@BeanpublicServletRegistrationBeanstatViewServlet(){ServletRegistrationBean servletRegistrationBean =newServletRegistrationBean(newStatViewServlet(),"/druid/*");//ServletRegistrationBean reg = new ServletRegistrationBean();//reg.setServlet(new StatViewServlet());//reg.addUrlMappings("/druid/*");// 添加IP白名单
    servletRegistrationBean.addInitParameter("allow","127.0.0.1");// 添加IP黑名单,当白名单和黑名单重复时,黑名单优先级更高//servletRegistrationBean.addInitParameter("deny", "127.0.0.1");// 添加控制台管理用户
    servletRegistrationBean.addInitParameter("loginUsername","admin");
    servletRegistrationBean.addInitParameter("loginPassword","123456");// 是否能够重置数据
    servletRegistrationBean.addInitParameter("resetEnable","false");return servletRegistrationBean;}

更加简洁了,开发人员只需要专注于配置信息,就可以快速的配置启用druid了,大大的提高了开发效率。

三、页面效果

启动项目,访问页面http://localhost:8080/druid
在这里插入图片描述
输入刚才配置的用户名、密码进入管理页面
在这里插入图片描述

三、配置原理

接下来简单说一下自动配置的原理:
1:先看一下引入依赖的目录结构
在这里插入图片描述
SpringBoot自动装配的原理大体上,是读取各个依赖下的spring.factories文件
在这里插入图片描述
可以看到里面时加载的DruidDataSourceAutoConfigure这个类
在这里插入图片描述
可以看到我们是通过@Import({DruidSpringAopConfiguration.class, DruidStatViewServletConfiguration.class, DruidWebStatFilterConfiguration.class, DruidFilterConfiguration.class})相关的配置文件来直接读取yaml中的配置文件,内部通过register来实现自动配置的功能


总结

以上就是SpringBoot集成Druid数据库连接池工具,及简单的SpringBoot自动装配的原理。

标签: spring boot 后端 java

本文转载自: https://blog.csdn.net/qq_44896640/article/details/131517639
版权归原作者 YanJiaJ 所有, 如有侵权,请联系我们删除。

“Springboot集成 Druid”的评论:

还没有评论