hikari配置断开重连_Springboot整合druid,⽇数据量超出500
万频繁操作。。。
1.Springboot 整合 druid
引⼊依赖:
com.alibaba
druid-spring-boot-starter
java config 配置:
@Configuration
@EnableConfigurationProperties(DruidPropertityConfig.class)
druid连接池配置详解public class DruidConfig {
// ⽇志
private final Logger logger = Logger(getClass());
@Autowired
private DruidPropertityConfig propertityConfig;
/**
* druid属性配置 Springboot 默认使⽤at.jdbc.pool.DataSource数据源,默认配置如下:
* Springboot默认⽀持4种数据源类型,定义在
* org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
* 中,分别是: at.jdbc.pool.DataSource
* com.zaxxer.hikari.HikariDataSource org.apachemons.dbcp.BasicDataSource
* org.apachemons.dbcp2.BasicDataSource 对于这4种数据源,当 classpath
* 下有相应的类存在时,Springboot 会通过⾃动配置为其⽣成DataSource Bean,DataSource
* Bean默认只会⽣成⼀个,四种数据源类型的⽣效先后顺序如下:Tomcat--> Hikari --> Dbcp --> Dbcp2 。
* @return
*/
@Bean(name = "dataSource")
@Primary
public DataSource druidDataSource() {
logger.info("dataSource propertityConfig:{}", propertityConfig);
DruidDataSource dataSource = new DruidDataSource();
dataSource.Url());
dataSource.Username());
dataSource.Password());
dataSource.DriverClassName());
// configuration
dataSource.InitialSize());
dataSource.MinIdle());
dataSource.MaxActive());
dataSource.MaxWait());
dataSource.TimeBetweenEvictionRunsMillis()); dataSource.MinEvictableIdleTimeMillis()); dataSource.setTestWhileIdle(propertityConfig.isTestWhileIdle());
dataSource.setTestOnBorrow(propertityConfig.isTestOnBorrow());
dataSource.setTestOnReturn(propertityConfig.isTestOnReturn());
dataSource.setPoolPreparedStatements(propertityConfig.isPoolPreparedStatements());
dataSource.setMaxPoolPreparedStatementPerConnectionSize(
dataSource.ValidationQuery());
return dataSource;
}
/**
* 注册⼀个druidStatViewServlet
*
* @return
*/
@Bean
public ServletRegistrationBean druidStatViewServlet() {
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
servletRegistrationBean.addInitParameter("allow", "*");
servletRegistrationBean.addInitParameter("loginUsername", "admin");
servletRegistrationBean.addInitParameter("loginPassword", "password");
servletRegistrationBean.addInitParameter("resetEnable", "false");
return servletRegistrationBean;
}
/**
* 注册⼀个druidStatFilter
*
* @return
*/
@Bean
public FilterRegistrationBean druidStatFilter() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter()); filterRegistrationBean.addUrlPatterns("/*");
filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"); return filterRegistrationBean;
}
}
配置属性:
@ConfigurationProperties(prefix = "jdbc.datasource")
@Data
public class DruidPropertityConfig {
private String driverClassName;
private String url;
private String username;
private String password;
private int initialSize;
private int minIdle;
private int maxActive;
private int maxWait;
private int timeBetweenEvictionRunsMillis;
private int minEvictableIdleTimeMillis;
private boolean testWhileIdle;
private boolean testOnBorrow;
private boolean testOnReturn;
private boolean poolPreparedStatements;
private int maxPoolPreparedStatementPerConnectionSize;
private String filters;
private String validationQuery;
}
datasource:
driverClassName: sql.cj.jdbc.Driver
url: jdbc:mysql:XXXX
username: xxxx
password: xxxx
#初始连接数
initialSize: 20
#最⼩空闲连接数
minIdle: 20
最⼤连接池数量
maxActive: 100
#获取链接超时时间
maxWait: 60000
#每30秒运⾏⼀次空闲连接回收器
timeBetweenEvictionRunsMillis: 30000
#池中的连接空闲30分钟后被回收
minEvictableIdleTimeMillis: 1800000
#此项配置为true即可,不影响性能,并且保证安全性。意义为:申请连接的时候检测,如果空闲时间⼤于timeBetweenEvictionRunsMillis,执⾏validationQuery检测连接是否有效
testWhileIdle: true
#获取链接的时候,不校验是否可⽤,开启会有损性能
testOnBorrow: false
#归还链接到连接池的时候校验链接是否可⽤
testOnReturn: false
#开启游标缓存(mysql不建议开启)
#poolPreparedStatements: true
#maxPoolPreparedStatementPerConnectionSize: 100
filters: stat,wall,slf4j
#检测数据库链接是否有效,必须配置
validationQuery: select 1
常⽤数据库validationQuery检查语句
数据库
validationQuery
select 1 from dual
mysql
select 1
DB2
select 1 from sysibm.sysdummy1
microsoft sql
select 1
hsqldb
select 1 from INFORMATION_SCHEMA.SYSTEM_USERS postgresql
select version()
ingres
select 1
derby
select 1
H2
select 1
基本配置参数说明:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。