千家信息网

druid中怎么配置数据连接池

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇文章给大家分享的是有关druid中怎么配置数据连接池,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。springboot 项目pom.
千家信息网最后更新 2026年11月01日druid中怎么配置数据连接池

本篇文章给大家分享的是有关druid中怎么配置数据连接池,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

springboot 项目

pom.xml druid 部分
                             com.alibaba                        druid-spring-boot-starter                        1.1.21                
application.xml druid 部分
spring:  ####整合数据库层  datasource:      driver-class-name: com.mysql.cj.jdbc.Driver      name: demo      url: jdbc:mysql://127.0.0.1:3306/test?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai      username: root      password: 123456      type: com.alibaba.druid.pool.DruidDataSource    druid:      # 初始连接数      initialSize: 5      # 最小连接池数量      minIdle: 10      # 最大连接池数量      maxActive: 20      # 配置获取连接等待超时的时间      maxWait: 60000      # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒      timeBetweenEvictionRunsMillis: 60000      # 配置一个连接在池中最小生存的时间,单位是毫秒      minEvictableIdleTimeMillis: 300000      # 配置一个连接在池中最大生存的时间,单位是毫秒      maxEvictableIdleTimeMillis: 900000      # 配置检测连接是否有效      validationQuery: SELECT 1 FROM DUAL      testWhileIdle: true      testOnBorrow: false      testOnReturn: false      webStatFilter:         enabled: true      statViewServlet:        enabled: true        # 设置白名单,不填则允许所有访问        allow:        url-pattern: /druid/*        # 控制台管理用户名和密码        login-username: easy        login-password: 1      filter:        stat:          enabled: true          # 慢SQL记录          log-slow-sql: true          slow-sql-millis: 20000          merge-sql: true        wall:          config:            multi-statement-allow: true

DruidDataSourceDecorator.java 读取yaml 配置,修饰 DataSource

@Configuration@ConfigurationProperties(prefix = "spring.datasource.druid")public class DruidDataSourceDecorator {        // 读取 Druid 配置        // 初始连接数        private int initialSize;        // 最小连接池数量        private int minIdle;        // 最大连接池数量        private int maxActive;        // 配置获取连接等待超时的时间        private int maxWait;        // 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒        private int timeBetweenEvictionRunsMillis;        // 配置一个连接在池中最小生存的时间,单位是毫秒        private int minEvictableIdleTimeMillis;        // 配置一个连接在池中最大生存的时间,单位是毫秒        private int maxEvictableIdleTimeMillis;        // 配置检测连接是否有效        private String validationQuery;        //        private boolean testWhileIdle;        //        private boolean testOnBorrow;        //        private boolean testOnReturn;  省略 set、get ...        public DruidDataSource decorat(DruidDataSource source) {                /** 配置初始化大小、最小、最大 */                source.setInitialSize(initialSize);                source.setMaxActive(maxActive);                source.setMinIdle(minIdle);                /** 配置获取连接等待超时的时间 */                source.setMaxWait(maxWait);                /** 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 */                source.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);                /** 配置一个连接在池中最小、最大生存的时间,单位是毫秒 */                source.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);                source.setMaxEvictableIdleTimeMillis(maxEvictableIdleTimeMillis);                /**                 * 用来检测连接是否有效的sql,要求是一个查询语句,常用select                 * 'x'。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用。                 */                source.setValidationQuery(validationQuery);                /**                 * 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。                 */                source.setTestWhileIdle(testWhileIdle);                /** 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */                source.setTestOnBorrow(testOnBorrow);                /** 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */                source.setTestOnReturn(testOnReturn);                return source;        }}

DataSourceConfig.java 数据源配置

@Configurationpublic class DataSourceConfig {        // 修饰一下 DataSource        @Autowired        private DruidDataSourceDecorator decorator ;                @Bean        @Primary        @ConfigurationProperties(prefix = "spring.datasource")        DataSource dataSource() {                DruidDataSource dataSource = DruidDataSourceBuilder.create().build();                        return decorator.decorat(dataSource);        }}

mybaties 配置

@Configuration@MapperScan(basePackages = "com.xxx.mapper", sqlSessionTemplateRef = "sqlSessionTemplate")public class HySessionFactory {        @Resource(name = "dataSource")        DataSource dataSource;        SqlSessionFactory hySqlSessionFactory() {                SqlSessionFactory sessionFactory = null;                try {                        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();                        bean.setDataSource(dataSource);                        // 扫描的XML                        bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/*.xml"));                                                 sessionFactory = bean.getObject();                } catch (Exception e) {                        e.printStackTrace();                }           return sessionFactory;        }        @Bean        SqlSessionTemplate sqlSessionTemplate() {                return new SqlSessionTemplate(sqlSessionFactory());        }}

以上就是druid中怎么配置数据连接池,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

配置 检测 时间 单位 最大 最小 有效 数据 数量 空闲 性能 部分 更多 知识 篇文章 实用 安全 作用 名单 大小 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网是第几次科技革命的成果 科技股互联网 互联网科技垄断 美国互联网科技巨头监管 与互联网科技公司 互联网医疗科技 易互联网科技有限公司 世界互联网领先科技成果 掌上梦互联网科技 哈尔滨秒房互联网科技有限公司 蓝色互联网科技 湖南洣水互联网科技有限公司扣款 互联网科技公司需要的职位 明优互联网科技有限公司 济南有互联网科技公司吗 2021互联网科技公司排名 同城互联网络科技 科技互联网专业工作会议发言稿 互联网科技大会大佬 上海互联网科技园景观 互联网是第几次科技革命的成果 互联网最新的科技 上海万想互联网科技 互联网科技公司介绍 深圳国际航运科技和互联网 中国互联网十大科技股排名 国大互联网教育科技有限公司薪资 上海乐五互联网科技有限公司 互联网科技企业商标注意事项 小牛互联网科技有限公司地址
0