springboot配置druid连接池的方法示例

 更新时间:2019年01月11日 15:08:54   作者:Brl  
这篇文章主要介绍了springboot配置druid连接池的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

Druid的简介

Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。Druid是阿里巴巴开发的号称为监控而生的数据库连接池!

Druid的功能

1、替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。

2、可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。

3、数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。

4、SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。

5、扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter机制,很方便编写JDBC层的扩展插件。

所以Druid可以:

1、充当数据库连接池。

2、可以监控数据库访问性能

3、获得SQL执行日志

在spring boot基础上开始配置:

1.引入当前最新的版本,这里我们使用的maven

<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>druid</artifactId>
  <version>1.1.12</version>
</dependency>

2.新建一个配置类,如下:

@Configuration//在项目启动时可以初始化配置
public class DruidConfiguration {
  @Bean
  public ServletRegistrationBean staViewServlet(){
    ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),
        "/druid/*");
    //白名单为空允许任何ip访问
    servletRegistrationBean.addInitParameter("allow","127.0.0.1");
    //ip黑名单(存在共同时,deny优先于allow):如果满足deny的即提示:Sorry you are not permitted...
    servletRegistrationBean.addInitParameter("deny","127.0.0.2");
    //登录查看信息的账号密码
    servletRegistrationBean.addInitParameter("loginUsername","druid");
    servletRegistrationBean.addInitParameter("loginPassword","druid");
    //是否能够重置数据
    servletRegistrationBean.addInitParameter("resetEnable","true");
    return servletRegistrationBean;
  }

  @Bean
  public FilterRegistrationBean statFilter(){
    FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
    //添加过滤规则
    filterRegistrationBean.addUrlPatterns("/*");
    //添加不需要忽略的格式信息
    filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpn,*.png,*.css,*.ico,/druid/*");
    return filterRegistrationBean;
  }

  //配置数据库的基本连接信息
  @Bean
  @Primary
  @ConfigurationProperties(prefix = "spring.datasource")//在application.properties中读取配置信息注入到DruidDataSource里
  public DataSource dataSource(){
    DruidDataSource druidDataSource = DataSourceBuilder.create().type(DruidDataSource.class).build();
    druidDataSource.setInitialSize(3);//初始化物理连接的数量
    try {
      druidDataSource.addFilters("stat,wall");//stat是sql监控,wall是防火墙(如果不添加则监控无效),不能添加log4j不然会出错
    } catch (SQLException e) {
      e.printStackTrace();
    }
    return druidDataSource;
  }

}

在application.properties中添加如下配置信息:

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mrbshiro?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=123456

上面这些配置会自动注入到我们上面的 DruidDataSource实列里。

这样就可以访问projectUrl/druid进行登录了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java开发JUC交换器Exchanger使用详解

    Java开发JUC交换器Exchanger使用详解

    这篇文章主要为大家介绍了Java开发JUC交换器Exchanger使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • 详解在Spring Boot中使用Mysql和JPA

    详解在Spring Boot中使用Mysql和JPA

    本文向你展示如何在Spring Boot的Web应用中使用Mysq数据库,也充分展示Spring Boot的优势
    2017-04-04
  • java字符串比较获取字符串出现次数的示例

    java字符串比较获取字符串出现次数的示例

    java获取一个字符串在整个字符串出现的次数,下面写出我的思路和二个实现方法,大家参考使用吧
    2014-01-01
  • Java基础知识之StringWriter流的使用

    Java基础知识之StringWriter流的使用

    这篇文章主要介绍了Java基础知识之StringWriter流的使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Spring Security实现自动登陆功能示例

    Spring Security实现自动登陆功能示例

    自动登录在很多网站和APP上都能用的到,解决了用户每次输入账号密码的麻烦。本文就使用Spring Security实现自动登陆功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • Java 数据结构线性表之顺序存储详解原理

    Java 数据结构线性表之顺序存储详解原理

    线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系
    2021-10-10
  • 详解如何用Java实现对m3u8直播流抽帧

    详解如何用Java实现对m3u8直播流抽帧

    抽帧(frame extraction)是指从视频流中提取一些特定的帧,通常是关键帧或者随机帧,以供后续处理。这篇文章主要为大家介绍了如何用Java实现对m3u8直播流抽帧,需要的可以参考一下
    2023-03-03
  • MapReduce中ArrayWritable 使用指南

    MapReduce中ArrayWritable 使用指南

    MapReduce是一种编程模型,用于大规模数据集的并行运算。概念"Map(映射)"和"Reduce(归约)"和他们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。他极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。
    2014-08-08
  • springboot+vue实现SSE服务器发送事件的示例

    springboot+vue实现SSE服务器发送事件的示例

    本文介绍了使用Spring Boot和Vue实现服务器发送事件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • SpringMVC项目访问controller时候报404的解决

    SpringMVC项目访问controller时候报404的解决

    这篇文章主要介绍了SpringMVC项目访问controller时候报404的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09

最新评论