springboot连接池配置

时间:2025-04-03 07:53:32

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

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

2,DruidSource

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