package com.ruoyi.framework.config.properties; import com.alibaba.druid.pool.DruidDataSource; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; /** * druid 配置属性 * * @author Lion Li */ @Data @Configuration @ConfigurationProperties(prefix = "spring.datasource.druid") public class DruidProperties { /** 初始连接数 */ 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; public DruidDataSource dataSource(DruidDataSource datasource) { datasource.setInitialSize(initialSize); datasource.setMaxActive(maxActive); datasource.setMinIdle(minIdle); datasource.setMaxWait(maxWait); datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis); datasource.setMaxEvictableIdleTimeMillis(maxEvictableIdleTimeMillis); datasource.setValidationQuery(validationQuery); datasource.setTestWhileIdle(testWhileIdle); datasource.setTestOnBorrow(testOnBorrow); datasource.setTestOnReturn(testOnReturn); return datasource; } }