整合Druid数据源

简介: 整合Druid数据源

整合Druid数据源


Druid是阿里巴巴开源平台上一个数据库连接池实现,结合了C3P0,DBCP,PROXOOL等DB池的优点,同时也加入了日志监控。


pom依赖

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


yml数据源配置

spring:
  datasource:
    username: root
    password: root1
    url: jdbc:mysql://127.0.0.1:3306/cardata?serverTime=UTC&useUnicode=true&characterEncoding=utf-8
    driver-class-name: com.mysql.cj.jdbc.Driver
    #指定数据源类型
    type: com.alibaba.druid.pool.DruidDataSource
    # 下面为Druid连接池的专有的一些设置,应用到上面所有数据源中,
    # 初始化大小,最小,最大
    initialSize: 5
    minIdle: 5
    maxActive: 20
    maxWait: 60000
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    validationQuery: SELECT 1 FROM DUAL
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    # 打开PSCache,并且指定每个连接上PSCache的大小
    poolPreparedStatements: true
    #   配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
    maxPoolPreparedStatementPerConnectionSize: 20
    #配置监控统计拦截的filters,stat:监控统计,log4j日志记录(**pom需导入log4j依赖**),wall:防御sql注入
    filters: stat,wall,log4j
    useGlobalDataSourceStat: true
    # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
    connectProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

DruidConfig 对应Bean.xml

@Configuration
public class DruidConfig {
    // 将yml和当前配置文件进行绑定
    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DataSource druidDataSource() {
        return new DruidDataSource();
    }
    // 后台监控: 相当于配置web.xml
    // 因为springboot内置了servlet容器,所以没有web.xml,替代方法ServletRegistrationBean 
    @Bean
    public ServletRegistrationBean StatViewServlet() {
        // /druid/* 配置访问druid路径
        ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
        // 配置后台账号密码
        Map<String, String> initParameters = new HashMap<>();
        // 增加配置, 登录账号 固定key
        initParameters.put("loginUsername", "admin");
        initParameters.put("loginPassword", "123456");
        // 允许谁可以访问
        initParameters.put("allow", "");
        // 设置初始化参数
        bean.setInitParameters(initParameters);
        return bean;
    }
    @Bean
    public FilterRegistrationBean webStarFilter() {
        FilterRegistrationBean bean = new FilterRegistrationBean();
        bean.setFilter(new WebStatFilter());
        // 可以过滤那些请求
        Map<String, String> initParameters = new HashMap<>();
        // 这些东西不进行统计
        initParameters.put("exclusions", "*.js,*.css,/druid/*");
        bean.setInitParameters(initParameters);
        return bean;
    }
}
相关文章
|
Java 数据库连接 应用服务中间件
原生JDBC使用C3p0数据源和dbcp数据源
原生JDBC使用C3p0数据源和dbcp数据源
116 0
|
SQL 缓存 监控
druid数据源配置参数说明
druid数据源配置参数说明
1823 0
|
6月前
|
SQL 监控 druid
【数据源】基于Druid来聊聊数据源
【数据源】基于Druid来聊聊数据源
287 0
|
6月前
|
SQL druid Java
JDBC、C3P0、DBCP、Druid 数据源连接池使用的对比总结.md2
JDBC、C3P0、DBCP、Druid 数据源连接池使用的对比总结.md
38 0
|
6月前
|
SQL druid Java
JDBC、C3P0、DBCP、Druid 数据源连接池使用的对比总结.md1
JDBC、C3P0、DBCP、Druid 数据源连接池使用的对比总结.md
69 0
|
druid 关系型数据库 MySQL
数据源管理(baomidou和druid)
数据源管理(baomidou和druid)
|
SQL 监控 druid
使用Druid数据源并查看监控页面
使用Druid数据源并查看监控页面
1594 0
|
监控 druid 前端开发
整合基本 JDBC 与数据源|学习笔记
快速学习整合基本 JDBC 与数据源
|
消息中间件 Kafka API
Flink 数据源 DataSource是这个样子的?(一)
因为本篇文章中,有个 Kafka 数据源的 Demo,在一开始解答小伙伴有可能的困惑:
Flink 数据源 DataSource是这个样子的?(一)
|
消息中间件 存储 缓存
Flink 数据源 DataSource是这个样子的?(二)
因为本篇文章中,有个 Kafka 数据源的 Demo,在一开始解答小伙伴有可能的困惑:
Flink 数据源 DataSource是这个样子的?(二)