文档章节

SpringBoot之druid

王念博客
 王念博客
发布于 2016/04/12 11:10
字数 480
阅读 3828
收藏 22

druid介绍

http://www.oschina.net/p/druid

1.导入依赖包

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <scope>runtime</scope>
</dependency>
<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>druid</artifactId>
   <version>1.0.18</version>
</dependency>

2.配置数据源 

# 数据库访问配置
# 主数据源,默认的
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://
spring.datasource.username=
spring.datasource.password=
# 下面为连接池的补充设置,应用到上面所有数据源中
# 初始化大小,最小,最大
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
# 配置获取连接等待超时的时间
spring.datasource.maxWait=60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.timeBetweenEvictionRunsMillis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
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
# 合并多个DruidDataSource的监控数据
#spring.datasource.useGlobalDataSourceStat=true

3.注册servlet和过滤器监控

package com.wangnian;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.context.embedded.FilterRegistrationBean;
import org.springframework.boot.context.embedded.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
 * Created by 王念 on 2016/4/11.
 */
@Configuration
public class DruidConfig {
    @Bean
    public ServletRegistrationBean druidServlet() {
        ServletRegistrationBean reg = new ServletRegistrationBean();
        reg.setServlet(new StatViewServlet());
        reg.addUrlMappings("/druid/*");
        //reg.addInitParameter("allow", "127.0.0.1");
        //reg.addInitParameter("deny","");
        reg.addInitParameter("loginUsername", "admin");
        reg.addInitParameter("loginPassword", "admin");
        return reg;
    }

    @Bean
    public FilterRegistrationBean filterRegistrationBean() {
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
        filterRegistrationBean.setFilter(new WebStatFilter());
        filterRegistrationBean.addUrlPatterns("/*");
        filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
        return filterRegistrationBean;
    }
}

启动成功

 访问:http://localhost:8080/druid/login.html即可

其他方式配置

http://blog.csdn.net/catoop/article/details/50925337

注意:使用注解servlet方式需要在主方法上加入  @ServletComponentScan 扫描

1.4.0需要配置数据源

@Bean
public DataSource druidDataSource(
                 @Value("${spring.datasource.driverClassName}") String driver,
                 @Value("${spring.datasource.url}") String url,
                 @Value("${spring.datasource.username}") String username,
                 @Value("${spring.datasource.password}") String password) {
        DruidDataSource druidDataSource = new DruidDataSource();
        druidDataSource.setDriverClassName(driver);
        druidDataSource.setUrl(url);
        druidDataSource.setUsername(username);
        druidDataSource.setPassword(password);
        try {
            druidDataSource.setFilters("stat, wall");
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return druidDataSource;
}

druid打印sql,可以看到连接池的运行过程

logging.level.druid.sql=debug

博客地址:http://my.oschina.net/wangnian

© 著作权归作者所有

共有 人打赏支持
王念博客
粉丝 166
博文 102
码字总数 79063
作品 0
浦东
程序员
私信 提问
加载中

评论(1)

y
yao999jing
我测试了一下,发现ServletRegistrationBean 中setServlet不支持HttpServlet
恒宇少年/spring-boot-chapter

简书整套文档以及源码解析 专题 专题名称 专题描述 001 Spring Boot 核心技术 讲解SpringBoot一些企业级层面的核心组件 002 Spring Cloud 核心技术 对Spring Cloud核心技术全面讲解 003 Quer...

恒宇少年
04/19
0
0
springboot的配置加密(二)之属性替换法

背景 承接上文 springboot的配置加密(一)之druid 分析 druid的方案虽然不错 不过仅仅只能对与db进行配置 【而且限定了只能对于密码进行加密】对于我们想要加密需求比较多的似乎不太合适~ 那...

Mr_Qi
07/25
0
0
springboot整合druid抛出dbType not support : sqlite异常

最近在搞springboot,将springboot和mybaits整合后没一点毛病,但想自己弄个sql监控,就准备使用阿里的druid来做连接池,毕竟是国产又是大厂出品,号称最牛X的连接池。 整合过程就不说了,百...

sprouting
07/05
0
0
spring boot + jta + druid整合demo

地址: https://gitee.com/liuchangng/springboot-mybatis-jta 项目使用到的技术如下: spring boot mybatis jta (分布式事务) druid (多数据源) 地址: https://gitee.com/liuchangng/springbo......

liuchangng
2017/09/28
0
1
SpringBoot与Mybatis整合的多模块项目

springBoot项目构建 Spring多模块项目的构建 1.使用Idea构建一个Springboot项目 File-->new-->project-->springInitializr-->(NEXT) 2.主项目pom中添加依赖 ~ org.springframework.bootspri......

JavionXiong
06/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

C4C销售订单行项目价格维护方法

需求很简单,能够创建销售订单,在行项目里添加产品,带出价格来,同时把总价显示在销售订单抬头区域。 如下图所示: 下面是具体配置。 Business Configuration里,点击Sales Order的配置: ...

JerryWang_SAP
6分钟前
0
0
deepin中配置robot framework环境

本文永久更新地址:https://my.oschina.net/bysu/blog/2989005 【若要到岸,请摇船:开源中国 不最醉不龟归】 1.在终端中输入pip,回车,如果提示没有该命令,则先安转pip sudo apt-get inst...

不最醉不龟归
52分钟前
6
0
OSChina 周日乱弹 —— 钱不还,我就当你人不在了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享Bigleaf的单曲《小鹿》 《小鹿》- Bigleaf 手机党少年们想听歌,请使劲儿戳(这里) 周日在家做什么? 做手工呀, @poorfis...

小小编辑
今天
153
5
EOS docker开发环境

使用eos docker镜像是部署本地EOS开发环境的最轻松愉快的方法。使用官方提供的eos docker镜像,你可以快速建立一个eos开发环境,可以迅速启动开发节点和钱包服务器、创建账户、编写智能合约....

汇智网教程
今天
22
0
《唐史原来超有趣》的读后感优秀范文3700字

《唐史原来超有趣》的读后感优秀范文3700字: 作者:花若离。我今天分享的内容《唐史原来超有趣》这本书的读后感,我将这本书看了一遍之后就束之高阁了,不过里面的内容一直在在脑海中回放,...

原创小博客
今天
31
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部