SpringBoot整合阿里Druid数据源

SpringBoot整合阿里 Druid数据源

首先阿里的Druid是开源数据源,监控sql和数据库性能方面非常强大,扩展功能、应用广泛,十分优秀的数据连接池。

  • 步骤 导入依赖 =》 配置Druid相关信息 =》 创建配置类来配置Druid(DruidConfig)=》启动 Application =》登录Druid后台
  • 首先SpringBoot整合Druid源需要导入依赖
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
       <dependency>
           <groupId>com.alibaba</groupId>
           <artifactId>druid</artifactId>
           <version>1.2.5</version>
       </dependency>
  • 配置Druid
    这里用的是yaml语法的配置文件(application.yml),首先自行配置数据库相关配置信息,然后参考以下Druid配置信息
spring:
  datasource:
    # 使用阿里巴巴的Druid数据库连接池
    type: com.alibaba.druid.pool.DruidDataSource
    # 连接池的配置信息
    # 初始化大小,最小,最大连接数
    initial-size: 10
    min-idle: 10
    maxActive: 20
    # 配置获取连接等待超时的时间
    maxWait: 60000
    # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是ms
    timeBetweenEvictionRunsMillis: 60000
    # Destory线程中如果检测到当前连接的最后活跃时间和当前时间的差值大于
    # minEvictableIdleTimeMillis,则关闭当前连接。单位是ms
    minEvictableIdleTimeMillis: 300000
    # 用来检测连接是否有效的sql,要求是一个查询语句。
    validationQuery: SELECT 1
    #建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
    testWhileIdle: true
    # 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
    testOnBorrow: false
    # 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能
    testOnReturn: false
    # 打开PSCache,并且指定每个连接上PSCache的大小
    poolPreparedStatements: true
    # 配置监控统计拦截的filters,监控统计用的stat、日志用的log4j、 防御sql注入的wall
    filters: stat,wall,slf4j
    # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
    useGlobaiDataSourceStat: true
    maxPoolPreparedStatementPerConnectionSize: 20

重点需要配置filters并且赋值监控项 stat、log4j、wall

  • 原本需要在项目的web.xml中配置druid的自定义servlet,但是因为springboot 内置了servlet容器,所以没有web.xml,所以需要创建配置类来配置Druid(DruidConfig)记得在Application启动类同级的目录下创建。
@Configuration
public class DruidConfig {

    //绑定datasource数据源
    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DataSource druidDataSource(){

        return new DruidDataSource();
    }

    //后台检控
    //因为springboot 内置了servlet容器,所以没有web.xml
    @Bean
    public ServletRegistrationBean statViewServlet(){
        //配置访问后台页面地址 /druid/*
        ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");

        HashMap<String, String> init = new HashMap<>();

        //设置登陆信息
        //用户名loginUsername和loginPassword是固定的key,不能修改,只能修改value
        init.put("loginUsername","root");
        init.put("loginPassword","123456");

        //如果allow值为空,则所有人都可以访问
        init.put("allow","");

        //设置后台登陆信息,最后将集合作为参数传入
        bean.setInitParameters(init);
        return bean;
    }
}
  • 最后可以启动Application,然后进行数据库操作
    然后访问http://localhost:8080/druid即可,如果没有自己更改的话,访问路径http://localhost:8080/druid是可以正常进入druid登陆页面在这里插入图片描述

登陆后就可以查看druid的监控系统了!在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Thomasdududu~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值