前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >spring boot集成druid连接池

spring boot集成druid连接池

作者头像
猿天地
发布2018-04-03 12:45:23
9890
发布2018-04-03 12:45:23
举报
文章被收录于专栏:猿天地

源码下载:http://cxytiandi.com/code/detail/13

Druid是一个JDBC组件,它包括三部分:

  • DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系。
  • DruidDataSource 高效可管理的数据库连接池。
  • SQLParser

GitHub地址:https://github.com/alibaba/druid

在spring boot中整合druid有多种方式,今天我们介绍最简单的方式来进行整合。

方法一,直接增加druid的相关配置即可

现在增加druid的maven配置

代码语言:javascript
复制
<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>druid</artifactId>
  <version>1.0.24</version>
</dependency>

注意先要设置spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

才能使用druid的链接池

代码语言:javascript
复制
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test
spring.datasource.username=root
spring.datasource.password=123456
# 初始化大小,最小,最大
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
# 配置获取连接等待超时的时间
spring.datasource.maxWait=60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.timeBetweenEvictionRunsMillis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
# 打开PSCache,并且指定每个连接上PSCache的大小
spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
spring.datasource.filters=stat,wall,log4j
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

上面是连接池的配置,还有一部分是druid提供的web页面的监控后台,也需要配置

代码语言:javascript
复制
@Configuration
public class DruidConfiguration {
    /**
     * 注册一个StatViewServlet
     * @return
     * 
     */
    @Bean
    public ServletRegistrationBean DruidStatViewServle2() {
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
        // 添加初始化参数:initParams
        // 白名单:
        servletRegistrationBean.addInitParameter("allow", "127.0.0.1");
        // 登录查看信息的账号密码.
        servletRegistrationBean.addInitParameter("loginUsername", "admin");
        servletRegistrationBean.addInitParameter("loginPassword", "admin");
        // 是否能够重置数据.
        servletRegistrationBean.addInitParameter("resetEnable", "false");
        return servletRegistrationBean;
    }

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

然后我们启动项目就可以访问后台了。访问地址:http://localhost/druid/login.html

通过我们配置的admin账号和密码就可以登录了。

第二种方式主要是数据源的配置

上面我们是再接再配置文件中配置的,当然我们也可以通过代码的方式创建数据源

代码语言:javascript
复制
@Bean(destroyMethod = "close", initMethod = "init")
public DataSource writeDataSource() {
    System.err.println("注入druid!!!");
    DruidDataSource dataSource = new DruidDataSource();
    dataSource.setUrl(propertyResolver.getProperty("url"));
    dataSource.setUsername(propertyResolver.getProperty("username"));// 用户名
    dataSource.setPassword(propertyResolver.getProperty("password"));// 密码
    dataSource.setDriverClassName(propertyResolver.getProperty("driver-class-name"));
    dataSource.setInitialSize(2);
    dataSource.setMaxActive(20);
    dataSource.setMinIdle(0);
    dataSource.setMaxWait(60000);
    dataSource.setValidationQuery("SELECT 1");
    dataSource.setTestOnBorrow(false);
    dataSource.setTestWhileIdle(true);
    dataSource.setPoolPreparedStatements(false);
    return dataSource;
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-11-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 猿天地 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Druid是一个JDBC组件,它包括三部分:
  • 方法一,直接增加druid的相关配置即可
  • 第二种方式主要是数据源的配置
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档