AJ_Report(11)

2021SC@SDUSC
代码地址:…、AJ_report\report-master\report-core\src\main\java\com\anjiplus\template\gaea\business\config\DruidDataSource.java
代码内容:

package com.anjiplus.template.gaea.business.config;

import com.alibaba.druid.pool.DruidDataSource;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * Created by raodeming on 2021/8/6.
 */
@Component
@ConfigurationProperties(prefix = "spring.druid")
@Data
public class DruidProperties {
    /**
     * 初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时
     */
    private int initialSize;

    /**
     * 最小连接池数量
     */
    private int minIdle;

    /**
     * 最大连接池数量
     */
    private int maxActive;

    /**
     * 获取连接时最大等待时间,单位毫秒。配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置
     */
    private int maxWait;

    /**
     * 关闭空闲连接的检测时间间隔.Destroy线程会检测连接的间隔时间,如果连接空闲时间大于等于minEvictableIdleTimeMillis则关闭物理连接。
     */
    private int timeBetweenEvictionRunsMillis;

    /**
     * 连接的最小生存时间.连接保持空闲而不被驱逐的最小时间
     */
    private int minEvictableIdleTimeMillis;

    /**
     * 申请连接时检测空闲时间,根据空闲时间再检测连接是否有效.建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRun
     */
    private boolean testWhileIdle;

    /**
     * 开启PSCache
     */
    private boolean poolPreparedStatements;

    /**
     * 设置PSCache值
     */
    private int maxPoolPreparedStatementPerConnectionSize;

    /**
     * 连接出错后再尝试连接三次
     */
    private int connectionErrorRetryAttempts;

    /**
     * 数据库服务宕机自动重连机制
     */
    private boolean breakAfterAcquireFailure;

    /**
     * 连接出错后重试时间间隔
     */
    private int timeBetweenConnectErrorMillis;

    public DruidDataSource dataSource(String url, String username, String password, String driverClassName) {
        DruidDataSource datasource = new DruidDataSource();
        datasource.setUrl(url);
        datasource.setUsername(username);
        datasource.setPassword(password);
        datasource.setDriverClassName(driverClassName);
        //configuration
        datasource.setInitialSize(initialSize);
        datasource.setMinIdle(minIdle);
        datasource.setMaxActive(maxActive);
        datasource.setMaxWait(maxWait);

        datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
        datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
        datasource.setTestWhileIdle(testWhileIdle);

        datasource.setPoolPreparedStatements(poolPreparedStatements);
        datasource.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);

        datasource.setConnectionErrorRetryAttempts(connectionErrorRetryAttempts);
        datasource.setBreakAfterAcquireFailure(breakAfterAcquireFailure);
        datasource.setTimeBetweenConnectErrorMillis(timeBetweenConnectErrorMillis);
        return datasource;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值