返回顶部
首页 > 资讯 > 精选 >SpringBoot怎么进行整合Druid数据源
  • 285
分享到

SpringBoot怎么进行整合Druid数据源

2023-07-02 13:07:18 285人浏览 泡泡鱼
摘要

今天小编给大家分享一下SpringBoot怎么进行整合Druid数据源的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.自定

今天小编给大家分享一下SpringBoot怎么进行整合Druid数据源的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

1.自定义方式

使用自定义方式整合Druid

SpringBoot怎么进行整合Druid数据源

1.添加依赖

在pom.xml添加相关依赖

  <!--数据库相关-->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-data-jdbc</artifactId>        </dependency>        <dependency>            <groupId>mysql</groupId>            <artifactId>Mysql-connector-java</artifactId>            <version>5.1.6</version>        </dependency>        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>druid</artifactId>            <version>1.2.6</version>        </dependency>    </dependencies>

2.编写配置

application.properties

server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/db_springtest?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.passWord=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

配置Druid的监控页功能:

Druid内置提供了一个StatViewServlet用于展示Druid的统计信息。官方文档 - 配置StatViewServlet

这个StatViewServlet的用途包括:

  • 提供监控信息展示的html页面

  • 提供监控信息的JSON api

Druid内置提供一个StatFilter,用于统计监控信息。官方文档 - 配置_StatFilter

WEBStatFilter用于采集web-jdbc关联监控的数据,如SQL监控、URI监控。官方文档 - 配置WebStatFilter

Druid提供了WallFilter,它是基于SQL语义分析来实现防御SQL注入攻击的。官方文档 - 配置 wallfilter

DataSourceConfig

package com.limi.springboottest2.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.sql.SQLException;import java.util.Arrays;@Configurationpublic class DataSourceConfig {    @Bean    @ConfigurationProperties("spring.datasource")//复用配置文件的数据源配置, 这样就不用写代码一个一个set了    public DataSource dataSource() throws SQLException {        DruidDataSource druidDataSource = new DruidDataSource();        //加入监控和防火墙功能功能        druidDataSource.setFilters("stat,wall");        return druidDataSource;    }        @Bean    public ServletRegistrationBean statViewServlet(){        StatViewServlet statViewServlet = new StatViewServlet();        ServletRegistrationBean<StatViewServlet> registrationBean =                new ServletRegistrationBean<>(statViewServlet, "/druid    @Bean    public FilterRegistrationBean webStatFilter(){        WebStatFilter webStatFilter = new WebStatFilter();        FilterRegistrationBean<WebStatFilter> filterRegistrationBean = new FilterRegistrationBean<>(webStatFilter);        filterRegistrationBean.setUrlPatterns(Arrays.asList("/*"));        filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.CSS,*.ico,/druid/*");        return filterRegistrationBean;    }}

3.测试

HelloController

package com.limi.springboottest2.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;@Controllerpublic class HelloController {    @Autowired    private JdbcTemplate jdbcTemplate;    @ResponseBody    @GetMapping("/sql")    public String test1(){        String sql = "select count(*) from t_user";        Long i = jdbcTemplate.queryForObject(sql, Long.class);        return i.toString();    }}

多次点击刷新进行访问

SpringBoot怎么进行整合Druid数据源

登录druid后台查看监控信息

账号admin, 密码123456

SpringBoot怎么进行整合Druid数据源

SpringBoot怎么进行整合Druid数据源

SpringBoot怎么进行整合Druid数据源

2.starter方式(推荐)

使用场景启动器整合druid, 效果和自定义方式一样, 但更加方便

1.添加依赖

在pom.xml添加相关依赖

        <!--数据库相关-->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-data-jdbc</artifactId>        </dependency>        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>            <version>5.1.6</version>        </dependency>        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>druid-spring-boot-starter</artifactId>            <version>1.1.17</version>        </dependency>

pom.xml完整内容如下

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://Maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>2.7.0</version>        <relativePath/> <!-- lookup parent from repository -->    </parent>    <groupId>com.limi</groupId>    <artifactId>springboot-test2</artifactId>    <version>0.0.1-SNAPSHOT</version>    <name>springboot-test2</name>    <description>Demo project for Spring Boot</description>    <properties>        <java.version>1.8</java.version>    </properties>    <dependencies>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-devtools</artifactId>            <scope>runtime</scope>            <optional>true</optional>        </dependency>        <dependency>            <groupId>org.projectlombok</groupId>            <artifactId>lombok</artifactId>            <optional>true</optional>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>            <scope>test</scope>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-configuration-processor</artifactId>            <optional>true</optional>        </dependency>        <!--数据库相关-->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-data-jdbc</artifactId>        </dependency>        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>            <version>5.1.6</version>        </dependency>        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>druid-spring-boot-starter</artifactId>            <version>1.1.17</version>        </dependency>    </dependencies>    <build>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>                <configuration>                    <excludes>                        <exclude>                            <groupId>org.projectlombok</groupId>                            <artifactId>lombok</artifactId>                        </exclude>                    </excludes>                </configuration>            </plugin>            <!-- 下面插件作用是工程打包时,不将spring-boot-configuration-processor打进包内,让其只在编码的时候有用 -->            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>                <configuration>                    <excludes>                        <exclude>                            <groupId>org.springframework.boot</groupId>                            <artifactId>spring-boot-configuration-processor</artifactId>                        </exclude>                    </excludes>                </configuration>            </plugin>        </plugins>    </build></project>

2.编写配置

application.properties

server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/db_springtest?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

#监控SpringBean
spring.datasource.druid.aop-patterns=com.limi.springboottest2.*  
# 底层开启功能,stat(sql监控),wall(防火墙)
spring.datasource.druid.filters=stat,wall

# 配置监控页功能
spring.datasource.druid.stat-view-servlet.enabled=true
spring.datasource.druid.stat-view-servlet.login-username=admin
spring.datasource.druid.stat-view-servlet.login-password=123456
spring.datasource.druid.stat-view-servlet.reset-enable=false

# 监控web
spring.datasource.druid.web-stat-filter.enabled=true
spring.datasource.druid.web-stat-filter.url-pattern=/*
spring.datasource.druid.web-stat-filter.exclusions='*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*'

# 对上面filters里面的stat的详细配置
spring.datasource.druid.filter.stat.slow-sql-millis=1000
spring.datasource.druid.filter.stat.log-slow-sql=true
spring.datasource.druid.filter.stat.enabled=true
spring.datasource.druid.filter.wall.enabled=true
spring.datasource.druid.filter.wall.config.drop-table-allow=false

3.测试

HelloController

package com.limi.springboottest2.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;@Controllerpublic class HelloController {    @Autowired    private JdbcTemplate jdbcTemplate;    @ResponseBody    @GetMapping("/sql")    public String test1(){        String sql = "select count(*) from t_user";        Long i = jdbcTemplate.queryForObject(sql, Long.class);        return i.toString();    }}

多次点击刷新进行访问

SpringBoot怎么进行整合Druid数据源

登录druid后台查看监控信息

账号admin, 密码123456

SpringBoot怎么进行整合Druid数据源

SpringBoot怎么进行整合Druid数据源

SpringBoot怎么进行整合Druid数据源

以上就是“SpringBoot怎么进行整合Druid数据源”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: SpringBoot怎么进行整合Druid数据源

本文链接: https://lsjlt.com/news/341990.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • SpringBoot怎么进行整合Druid数据源
    今天小编给大家分享一下SpringBoot怎么进行整合Druid数据源的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.自定...
    99+
    2023-07-02
  • SpringBoot怎么整合Druid数据源
    本篇内容主要讲解“SpringBoot怎么整合Druid数据源”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot怎么整合Druid数据源”吧! SprintBoot 默...
    99+
    2023-07-02
  • SpringBoot详解如何进行整合Druid数据源
    目录1.自定义方式1.添加依赖2.编写配置3.测试2.starter方式(推荐)1.添加依赖2.编写配置3.测试Druid是数据库连接池,它能够提供强大的监控和扩展功能。官方文档 S...
    99+
    2024-04-02
  • SpringBoot中如何整合Druid数据源
    这篇文章主要介绍“SpringBoot中如何整合Druid数据源”,在日常操作中,相信很多人在SpringBoot中如何整合Druid数据源问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SpringBoot中...
    99+
    2023-06-08
  • springboot整合druid及多数据源配置
    前言 本篇主要分两部分 ①springboot整合druid的代码配置,以及druid的监控页面演示;②对实际场景中多数据源的配置使用进行讲解。 一、springboot整合druid的演示demo 可以用idea快速生成一个可运行的dem...
    99+
    2023-10-24
    spring boot java spring
  • SpringBoot整合Druid数据源的方法实现
    目录1、在创建SpringBoot项目的时候,在pom.xml maven中添加依赖:2、在 application.yml(或aproperties)中添加相应的配置:3、 log...
    99+
    2024-04-02
  • SpringBoot整合JDBC、Druid数据源的示例代码
    目录1.SpringBoot整合JDBCTemplate1.1.导入jdbc相关依赖包1.2.yaml配置数据源2.SpringBoot整合DruidDataSource2.1.Dr...
    99+
    2024-04-02
  • SpringBoot整合阿里 Druid 数据源的实例详解
    目录1. 在容器中注册 DruidDataSource 数据源。2. Druid 数据源各种属性配置方法3. 开启Druid的内置监控页面4. 打开 Druid 监控统计功能5. 配...
    99+
    2022-11-16
    SpringBoot整合Druid 数据源 SpringBoot整合数据源
  • SpringBoot中怎么使用Druid数据源
    SpringBoot中怎么使用Druid数据源,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。数据访问之Druid数据源的使用说明:该数据源Druid,使用自定义方式实现,后...
    99+
    2023-06-20
  • springboot 中怎么配置DRUID数据源
    本篇文章为大家展示了springboot 中怎么配置DRUID数据源,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.修改pom.xml<dependency>  &...
    99+
    2023-06-02
  • springboot整合redis进行数据操作(推荐)
    redis是一种常见的nosql,日常开发中,我们使用它的频率比较高,因为它的多种数据接口,很多场景中我们都可以用到,并且redis对分布式这块做的非常好。springboot整合redis比较简单,并且使用redistemplate可以让...
    99+
    2023-05-31
    spring boot redis
  • SpringBoot怎么使用druid配置多数据源
    这篇“SpringBoot怎么使用druid配置多数据源”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringBoot怎...
    99+
    2023-07-05
  • SpringBoot中怎么对Shiro进行整合
    本篇内容介绍了“SpringBoot中怎么对Shiro进行整合”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!原生的整合创建项目创建一个 Sp...
    99+
    2023-06-08
  • springboot项目整合druid数据库连接池的实现
    Druid连接池是阿里巴巴开源的数据库连接池项目,后来贡献给Apache开源; Druid的作用是负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再...
    99+
    2024-04-02
  • SpringBoot整合Druid实现数据库连接池和监控
    目录1、Druid的简介2、创建SpringBoot项目与数据表2.1 创建项目2.2 创建数据表3、Druid实现数据库连接池3.1 Druid的配置3.2 创建实体类(Entit...
    99+
    2024-04-02
  • Springboot多数据源配置之怎么整合dynamic-datasource
    本篇内容介绍了“Springboot多数据源配置之怎么整合dynamic-datasource”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2023-07-05
  • Spark怎么进行数据交互和整合
    Spark可以通过多种方式进行数据交互和整合,以下是一些常用的方法: 使用Spark的DataFrame API:Spark D...
    99+
    2024-03-14
    Spark
  • springboot如何进行整合mongodb
    springboot如何进行整合mongodb,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。准备工作安装 MongoDBjdk 1.8maven 3.0idea环境依赖在p...
    99+
    2023-06-19
  • 如何进行SpringBoot 整合JPA
    如何进行SpringBoot 整合JPA,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。JPA全称Java Persistence API.JPA通过JDK 5....
    99+
    2023-06-05
  • springboot整合mybatis-plus、clickhouse、mysql多数据源
    springboot的多数据源有多种方式,本文按照指定不同dao/mapper.xml的方式来实现访问不同的数据源。这样的好处是不用注解去切换数据源。 1、引入驱动 com.alibaba...
    99+
    2023-09-05
    mybatis spring boot mysql clickhouse
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作