springboot连接池配置

注:此内容为备忘笔记,仅限参考
1,application.properties

		    #数据库配置
		    spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
		    spring.datasource.url=jdbc:mysql://localhost:3306/classweb?serverTimezone=UTC
		    spring.datasource.username=root
		    spring.datasource.password=hao.521
		    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
		    #配置Mybatis实体类包
		    mybatis.type-aliases-package=com.vo
		    
		    #连接池的配置信息
		    
		    # 初始化大小,最小,最大
		    
		    spring.druid.initialSize=4
		    spring.druid.minIdle=4
		    spring.druid.maxActive=20
		    # 配置获取连接等待超时的时间
		    spring.druid.maxWait=60000
		    # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
		    spring.druid.timeBetweenEvictionRunsMillis=60000
		    # 配置一个连接在池中最小生存的时间,单位是毫秒
		    spring.druid.minEvictableIdleTimeMillis=300000
		    spring.druid.validationQuery=SELECT 1 FROM DUAL
		    spring.druid.testWhileIdle=true
		    spring.druid.testOnBorrow=false
		    spring.druid.testOnReturn=false
		    spring.druid.poolPreparedStatements=true
		    spring.druid.maxPoolPreparedStatementPerConnectionSize=20
		    # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
		    spring.druid.filters=stat,wall,log4j
		    # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
		    spring.druid.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

2,DruidSource

		    @ConfigurationProperties(prefix = "application.properties")
		    public class DruidSource {
		    	private String dbUrl;			    
		    	private String username;			    
		    	private String password;			    
		    	private String driverClassName;		    
		    	private int initialSize;			    
		    	private int minIdle;			    
		    	private int maxActive;			    
		    	private int maxWait;
		    	private int timeBetweenEvictionRunsMillis;			    
		    	private int minEvictableIdleTimeMillis;
		    	private String validationQuery;			    
		    	private boolean testWhileIdle;
		    	private boolean testOnBorrow;
		    	private boolean testOnReturn;			    
		    	private boolean poolPreparedStatements;			    
		    	private int maxPoolPreparedStatementPerConnectionSize;			    
		    	private String filters;			    
		    	private String connectionProperties;			    
		    	public String getDbUrl() {
		    		return dbUrl;
		    	}
		    
		    	public void setDbUrl(String dbUrl) {
		    		this.dbUrl = dbUrl;
		    	}
		    
		    	public String getUsername() {
		    		return username;
		    	}
		    
		    	public void setUsername(String username) {
		    		this.username = username;
		    	}
		    
		    	public String getPassword() {
		    		return password;
		    	}
		    
		    	public void setPassword(String password) {
		    		this.password = password;
		    	}
		    
		    	public String getDriverClassName() {
		    		return driverClassName;
		    	}
		    
		    	public void setDriverClassName(String driverClassName) {
		    		this.driverClassName = driverClassName;
		    	}
		    
		    	public int getInitialSize() {
		    		return initialSize;
		    	}
		    
		    	public void setInitialSize(int initialSize) {
		    		this.initialSize = initialSize;
		    	}
		    
		    	public int getMinIdle() {
		    		return minIdle;
		    	}
		    
		    	public void setMinIdle(int minIdle) {
		    		this.minIdle = minIdle;
		    	}
		    
		    	public int getMaxActive() {
		    		return maxActive;
		    	}
		    
		    	public void setMaxActive(int maxActive) {
		    		this.maxActive = maxActive;
		    	}
		    
		    	public int getMaxWait() {
		    		return maxWait;
		    	}
		    
		    	public void setMaxWait(int maxWait) {
		    		this.maxWait = maxWait;
		    	}
		    
		    	public int getTimeBetweenEvictionRunsMillis() {
		    		return timeBetweenEvictionRunsMillis;
		    	}
		    
		    	public void setTimeBetweenEvictionRunsMillis(int timeBetweenEvictionRunsMillis) {
		    		this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis;
		    	}
		    
		    	public int getMinEvictableIdleTimeMillis() {
		    		return minEvictableIdleTimeMillis;
		    	}
		    
		    	public void setMinEvictableIdleTimeMillis(int minEvictableIdleTimeMillis) {
		    		this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis;
		    	}
		    
		    	public String getValidationQuery() {
		    		return validationQuery;
		    	}
		    
		    	public void setValidationQuery(String validationQuery) {
		    		this.validationQuery = validationQuery;
		    	}
		    
		    	public boolean isTestWhileIdle() {
		    		return testWhileIdle;
		    	}
		    
		    	public void setTestWhileIdle(boolean testWhileIdle) {
		    		this.testWhileIdle = testWhileIdle;
		    	}
		    
		    	public boolean isTestOnBorrow() {
		    		return testOnBorrow;
		    	}
		    
		    	public void setTestOnBorrow(boolean testOnBorrow) {
		    		this.testOnBorrow = testOnBorrow;
		    	}
		    
		    	public boolean isTestOnReturn() {
		    		return testOnReturn;
		    	}
		    
		    	public void setTestOnReturn(boolean testOnReturn) {
		    		this.testOnReturn = testOnReturn;
		    	}
		    
		    	public boolean isPoolPreparedStatements() {
		    		return poolPreparedStatements;
		    	}
		    
		    	public void setPoolPreparedStatements(boolean poolPreparedStatements) {
		    		this.poolPreparedStatements = poolPreparedStatements;
		    	}
		    
		    	public int getMaxPoolPreparedStatementPerConnectionSize() {
		    		return maxPoolPreparedStatementPerConnectionSize;
		    	}
		    
		    	public void setMaxPoolPreparedStatementPerConnectionSize(int maxPoolPreparedStatementPerConnectionSize) {
		    		this.maxPoolPreparedStatementPerConnectionSize = maxPoolPreparedStatementPerConnectionSize;
		    	}
		    
		    	public String getFilters() {
		    		return filters;
		    	}
		    
		    	public void setFilters(String filters) {
		    		this.filters = filters;
		    	}
		    
		    	public String getConnectionProperties() {
		    		return connectionProperties;
		    	}
		    
		    	public void setConnectionProperties(String connectionProperties) {
		    		this.connectionProperties = connectionProperties;
		    	}
		    
		    	@Bean     //声明其为Bean实例
		    	@Primary  //在同样的DataSource中,首先使用被标注的DataSource
		    	public DataSource dataSource() throws SQLException {
		    		DruidDataSource datasource = new DruidDataSource();
		    
		    		datasource.setUrl(this.dbUrl);
		    		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.setValidationQuery(validationQuery);
		    		datasource.setTestWhileIdle(testWhileIdle);
		    		datasource.setTestOnBorrow(testOnBorrow);
		    		datasource.setTestOnReturn(testOnReturn);
		    		datasource.setPoolPreparedStatements(poolPreparedStatements);
		    		datasource.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);
		    
		    		datasource.setFilters(filters);
		    
		    
		    		return datasource;
		    	}
		    }

你可能感兴趣的:(#,springboot)