千家信息网

SpringBoot中如何整合Druid数据源

发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,这篇文章主要介绍"SpringBoot中如何整合Druid数据源",在日常操作中,相信很多人在SpringBoot中如何整合Druid数据源问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法
千家信息网最后更新 2025年11月14日SpringBoot中如何整合Druid数据源

这篇文章主要介绍"SpringBoot中如何整合Druid数据源",在日常操作中,相信很多人在SpringBoot中如何整合Druid数据源问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"SpringBoot中如何整合Druid数据源"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1.数据库结构

2.项目结构

3.pom.xml文件

      org.springframework.boot    spring-boot-starter-jdbc        mysql    mysql-connector-java    runtime             com.alibaba    druid    1.1.8             log4j    log4j    1.2.17         org.springframework.boot    spring-boot-starter-web          org.springframework.boot    spring-boot-starter-test    test               org.springframework.boot      spring-boot-maven-plugin       

4.application.yml配置文件

spring: datasource:  username: root  password: wangqing  url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai  driver-class-name: com.mysql.jdbc.Driver  type: com.alibaba.druid.pool.DruidDataSource   #  数据源其他配置  initialSize: 5  minIdle: 5  maxActive: 20  maxWait: 60000  timeBetweenEvictionRunsMillis: 60000  minEvictableIdleTimeMillis: 300000  validationQuery: SELECT 1 FROM DUAL  testWhileIdle: true  testOnBorrow: false  testOnReturn: false  poolPreparedStatements: true#  配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙  filters: stat,wall,log4j  maxPoolPreparedStatementPerConnectionSize: 20  useGlobalDataSourceStat: true  connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500  # 合并多个DruidDataSource的监控数据  #useGlobalDataSourceStat: true   mybatis: # 指定全局配置文件位置 #config-location: classpath:mybatis/mybatis-config.xml # 指定sql映射文件位置 mapper-locations: classpath:mapper/*.xml      #如src/main/resources下的mappers文件下的TUserMapper.xml #  schema:#   - classpath:sql/department.sql     #根据department.sql 的sql语句创建表#   - classpath:sql/employee.sql 

5.创建一个DruidConfig的配置类,实例化Druid Datasource

package com.qingfeng.config; import com.alibaba.druid.pool.DruidDataSource;import com.alibaba.druid.support.http.StatViewServlet;import com.alibaba.druid.support.http.WebStatFilter;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.boot.web.servlet.FilterRegistrationBean;import org.springframework.boot.web.servlet.ServletRegistrationBean;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration; import javax.sql.DataSource;import java.util.Arrays;import java.util.HashMap;import java.util.Map; @Configurationpublic class DruidConfig {   //指定加载appliction.yml文件里面的spring.datasource开头的   // DruidDataSource类里面的属性与appliction.yml文件里面的spring.datasource开头的对应映射  @ConfigurationProperties(prefix = "spring.datasource")  @Bean  public DataSource druid(){    return new DruidDataSource();  }   //配置Druid的监控  //1、配置一个管理后台的Servlet  @Bean  public ServletRegistrationBean statViewServlet(){    ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");    Map initParams = new HashMap<>();     initParams.put("loginUsername","admin");    initParams.put("loginPassword","123456");    initParams.put("allow","");//默认就是允许所有访问    initParams.put("deny","");     bean.setInitParameters(initParams);    return bean;  }    //2、配置一个web监控的filter  @Bean  public FilterRegistrationBean webStatFilter(){    FilterRegistrationBean bean = new FilterRegistrationBean();    bean.setFilter(new WebStatFilter());    Map initParams = new HashMap<>();    initParams.put("exclusions","*.js,*.css,/druid/*");    bean.setInitParameters(initParams);    bean.setUrlPatterns(Arrays.asList("/*"));    return bean;  }}

6.创建一个UserController类测试

package com.qingfeng.controller; import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.ResponseBody; import java.util.List;import java.util.Map; @Controllerpublic class UserController {   @Autowired  JdbcTemplate jdbcTemplate;  @ResponseBody  @GetMapping("/query")  public Map map(){    List> list = jdbcTemplate.queryForList("select * FROM user");    return list.get(0);  }}

7.运行项目,通过浏览器访问 http://localhost:8080/query

8.我们DruidConfig类里配置的下面代码可以帮我们实现监控

//配置Druid的监控  //1、配置一个管理后台的Servlet  @Bean  public ServletRegistrationBean statViewServlet(){    ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");    Map initParams = new HashMap<>();     initParams.put("loginUsername","admin");    initParams.put("loginPassword","123456");    initParams.put("allow","");//默认就是允许所有访问    initParams.put("deny","");     bean.setInitParameters(initParams);    return bean;  }

9.我们启动项目,打开网址:http://localhost:8080/druid/login.html 可以通过登录,查看druid数据源状态监控

我们上面设置的是用户名:admin 密码:123456

到此,关于"SpringBoot中如何整合Druid数据源"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

配置 数据 监控 文件 数据源 整合 学习 项目 位置 后台 就是 开头 更多 结构 帮助 管理 统计 实用 接下来 代码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 不属于网络安全的主动防御保护 王者服务器运营人员月薪多少 谷粒商城1核2G的服务器够吗 网络安全的防护技术 海康威视服务器远程管理默认端口 河北宇佳互联网科技有限公司 海澜集团软件开发怎么样 关系型数据库驱动方式 普陀区服务器回收厂家哪家便宜 目前用的数据库有哪些 莉城网络技术工作室 建立数据库生成表 答辩问数据库怎么创建 粤税通服务器内部异常 vlc视频服务器 网络安全保险哪家在做 购买服务器费用 软件开发工程师和网络工程师 ipv9中国根服务器是谁提供的 超星数据库可以获取期刊论文吗 美团软件开发 软件开发公司的营业范围 林草局网络安全事件应急预案 工业控制系统网络安全服务 数据库占用cpu突然0 皇室战争专用服务器 oa怎么进入数据库 服务器指示灯显示红色 湖南pdu服务器专用电源生产厂 北京国联中微网络技术股份
0