文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

SpringBoot中如何整合Druid数据源

2023-06-08 05:06

关注

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

1.数据库结构

SpringBoot中如何整合Druid数据源

2.项目结构

SpringBoot中如何整合Druid数据源

3.pom.xml文件

<dependencies>  <dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-jdbc</artifactId>  </dependency>  <dependency>    <groupId>mysql</groupId>    <artifactId>mysql-connector-java</artifactId>    <scope>runtime</scope>  </dependency>   <!--引入druid数据源 -->  <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->  <dependency>    <groupId>com.alibaba</groupId>    <artifactId>druid</artifactId>    <version>1.1.8</version>  </dependency>   <!-- https://mvnrepository.com/artifact/log4j/log4j -->  <!-- 如果 不加入这依赖    配置监控统计拦截的filters时  这个会报错 filters: stat,wall,log4j  -->  <dependency>    <groupId>log4j</groupId>    <artifactId>log4j</artifactId>    <version>1.2.17</version>  </dependency>   <dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-web</artifactId>  </dependency>    <dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-test</artifactId>    <scope>test</scope>  </dependency></dependencies> <build>  <plugins>    <plugin>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-maven-plugin</artifactId>    </plugin>  </plugins></build> 

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<String,String> 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<String,String> 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<String,Object> map(){    List<Map<String, Object>> list = jdbcTemplate.queryForList("select * FROM user");    return list.get(0);  }}

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

SpringBoot中如何整合Druid数据源

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

//配置Druid的监控  //1、配置一个管理后台的Servlet  @Bean  public ServletRegistrationBean statViewServlet(){    ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");    Map<String,String> 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数据源状态监控

SpringBoot中如何整合Druid数据源

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

SpringBoot中如何整合Druid数据源

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯