栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

spring-boot-整合Druid数据源-06

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

spring-boot-整合Druid数据源-06

spring-boot-整合Druid数据源
  • 简 介 color{#0000FF}{简介} 简介
  • 添 加 d r u i d 依 赖 color{#0000FF}{添加druid依赖} 添加druid依赖
  • 查 看 当 前 s p r i n g B o o t 数 据 源 类 型 color{#0000FF}{查看当前springBoot数据源类型} 查看当前springBoot数据源类型
    • 编 写 测 试 类 color{#0000FF}{编写测试类} 编写测试类
    • 运 行 结 果 color{#0000FF}{运行结果} 运行结果
  • 修 改 数 据 源 类 型 color{#0000FF}{修改数据源类型} 修改数据源类型
    • 运 行 结 果 color{#0000FF}{运行结果} 运行结果
  • d u r i d 配 置 参 数 color{#0000FF}{durid配置参数} durid配置参数
  • d u r i d 配 置 类 color{#0000FF}{durid配置类} durid配置类
  • 结 果 展 示 color{#0000FF}{结果展示} 结果展示

简 介 color{#0000FF}{简介} 简介

Druid是阿里巴巴开源平台上一个数据库连接池实现,结合了C3P0,DBCP,PROXOOL等DB池的优点,同时加入了日志监控
Druid可以很好的监控DB池连接和SQL执行的情况,天生就是针对监控而生的DB连接池
springBoot2.0以上默认的是使用Hikari数据源,可以说Hikari,Druid都是当前Java Web上最优秀的数据源

添 加 d r u i d 依 赖 color{#0000FF}{添加druid依赖} 添加druid依赖

            com.alibaba
            druid
            1.2.9
 

        
            log4j
            log4j
            1.2.12

查 看 当 前 s p r i n g B o o t 数 据 源 类 型 color{#0000FF}{查看当前springBoot数据源类型} 查看当前springBoot数据源类型 编 写 测 试 类 color{#0000FF}{编写测试类} 编写测试类
package com.dragon.jdbc;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import javax.annotation.Resource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;

@SpringBootTest
class JdbcApplicationTests {

    @Resource
    DataSource dataSource;

    @Test
    void contextLoads() throws SQLException {
        
        System.out.println(dataSource.getClass());

        Connection connection = dataSource.getConnection();

        
        System.out.println(dataSource.getConnection());

        
        connection.close();
    }

}

运 行 结 果 color{#0000FF}{运行结果} 运行结果
1、class com.zaxxer.hikari.HikariDataSource
2、HikariProxyConnection@1789376127 wrapping com.mysql.cj.jdbc.ConnectionImpl@6bcc3f27

由 此 可 以 得 到 s p r i n g 本 身 集 成 了 h i k a r i 数 据 库 连 接 池 color{#FF00FF}{由此可以得到spring本身集成了hikari数据库连接池} 由此可以得到spring本身集成了hikari数据库连接池

修 改 数 据 源 类 型 color{#0000FF}{修改数据源类型} 修改数据源类型
spring:
  datasource:
    username: root
    password: woailimin
    url: jdbc:mysql://localhost:3306/game?useUnicode=ture&characterEncoding=utf-8
    driver-class-name: com.mysql.cj.jdbc.Driver
    # 指定数据源类型
    type: com.alibaba.druid.pool.DruidDataSource
运 行 结 果 color{#0000FF}{运行结果} 运行结果

使 用 同 一 个 测 试 类 得 到 结 果 为 color{#FF00FF}{使用同一个测试类得到结果为} 使用同一个测试类得到结果为

1、class com.alibaba.druid.pool.DruidDataSource
2、com.mysql.cj.jdbc.ConnectionImpl@4b0f2299

由 此 可 以 得 到 s p r i n g 中 h i k a r i 数 据 库 连 接 池 替 换 为 d r u i d color{#FF00FF}{由此可以得到spring中hikari数据库连接池替换为druid} 由此可以得到spring中hikari数据库连接池替换为druid

d u r i d 配 置 参 数 color{#0000FF}{durid配置参数} durid配置参数
spring:
  datasource:
    username: root
    password: ~~~~~~
    url: jdbc:mysql://localhost:3306/game?useUnicode=ture&characterEncoding=utf-8
    driver-class-name: com.mysql.cj.jdbc.Driver
    # 指定数据源类型
    type: com.alibaba.druid.pool.DruidDataSource

    # springBoot默认是不需要注入这些参数的,需要自己绑定
    # druid 数据源专有配置

    # 缺省值-0 初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时
    initialSize: 5
    # 最小连接池数量
    minIdle: 5
    # 缺省值- 8 最大连接池数量
    maxActive: 20
    # 获取连接时最大等待时间,单位毫秒。配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置useUnfairLock属性为true使用非公平锁。
    maxWait: 60000
    # 1) Destroy线程会检测连接的间隔时间,如果连接空闲时间大于等于minEvictableIdleTimeMillis则关闭物理连接
    # 2) testWhileIdle的判断依据,详细看testWhileIdle属性的说明
    timeBetweenEvictionRunsMillis: 60000
    # 连接保持空闲而不被驱逐的最小时间
    minEvictableIdleTimeMillis: 30000
    # 用来检测连接是否有效的sql,要求是一个查询语句,常用select 'x'。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用
    validationQuery: SELECT 1 FROM DUAL
    # 缺省值-false 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
    testWhileIdle: true
    # 缺省值-true 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
    testOnBorrow: false
    # 缺省值-false 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
    testOnReturn: false
    # 缺省值-false 是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭。
    poolPreparedStatements: true


    # 配置监控统计拦截的filters; 监控统计:stat; 日志记录:log4j; 防止sql注入:wall
    # 如果允许报错,那么就导入log4j
    # 过滤器
    filters: stat,wall,log4j
    # 缺省值- -1 要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true。在Druid中,不会存在Oracle下PSCache占用内存过多的问题,可以把这个数值配置大一些,比如说100
    maxPoolPreparedStatementPerConnectionSize: 20
    # 连接属性 比如设置一些连接池统计方面的配置
    connectProperties: druid.stat.mergeSql=true;durid.stat.slowSqlMillis=500
    # 合并多个DruidDataSource的监控数据
    useGlobalDataSourceStat: true
d u r i d 配 置 类 color{#0000FF}{durid配置类} durid配置类

配 置 类 实 例 color{#0000FF}{配置类实例} 配置类实例

package com.dragon.jdbc.DruidConfig;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import org.springframework.boot.context.properties.ConfigurationProperties;
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.HashMap;


@Configuration
public class DruidConfig {
    

    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DataSource druidDataSource() {
        return new DruidDataSource();
    }

    
    @Bean
    public ServletRegistrationBean StatViewServlet() {// 相当于web.xml
        
        ServletRegistrationBean bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid
        HashMap initParameters = new HashMap<>();
        
        initParameters.put("loginUsername","MJL");//其中登陆的key值是确定的不可以修改
        initParameters.put("loginPassword","1314");
        
        initParameters.put("allow","");
        
        initParameters.put("MJ","192.133.3.3");

        
        bean.setInitParameters(initParameters);
        return bean;
    }
}
结 果 展 示 color{#0000FF}{结果展示} 结果展示

在 浏 览 器 地 址 栏 输 入 : color{#FF00FF}{在浏览器地址栏输入:} 在浏览器地址栏输入: http://localhost:8080/druid/login.html

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/842487.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号