<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.12.0</version>
</dependency>
2. application-dev.yml에서 해당 부분 제거
datasource:
url: jdbc:h2:mem:testdb
driver-class-name: org.h2.Driver
type: org.apache.commons.dbcp2.BasicDataSource
username: sa
password: ""
3. application-dev.yml에 해당 부분 추가
dbcp2:
datasource:
url: jdbc:h2:mem:testdb
driver-class-name: org.h2.Driver
username: sa
password: ""
initial-size: 5
max-total: 5
max-idle: 5
min-idle: 5
- 로컬에서는 테스트 용이니까 Connection Pool의 사이즈는 5로 유지
4. DataSourceConfig 클래스 추가
@Getter @Setter
@Configuration
@ConfigurationProperties(prefix = "dbcp2.datasource")
public class DataSourceConfig {
private String driverClassName;
private String url;
private String username;
private String password;
private Integer maxIdle;
private Integer maxTotal;
private Integer initialSize;
private Integer minIdle;
@Bean
public DataSource dataSource() {
BasicDataSource basicDataSource = new BasicDataSource();
basicDataSource.setDriverClassName(driverClassName);
basicDataSource.setUrl(url);
basicDataSource.setUsername(username);
basicDataSource.setPassword(password);
basicDataSource.setMaxIdle(maxIdle);
basicDataSource.setMaxTotal(maxTotal);
basicDataSource.setInitialSize(initialSize);
basicDataSource.setMinIdle(minIdle);
basicDataSource.setValidationQuery("SELECT 1");
basicDataSource.setTestOnReturn(true);
basicDataSource.setTestOnBorrow(false);
basicDataSource.setTestWhileIdle(true);
return basicDataSource;
}
}
dbcp2:
datasource:
url: `db address`
username: `db username`
password: `db password`
driver-class-name: com.mysql.cj.jdbc.Driver
initial-size: 15
max-total: 15
max-idle: 15
min-idle: 15
- MySQL 기본 설정 커넥션 최대수는 151개
- 우리 서비스는 v1, v2 포함 총 8개
- 그래서 15개로 설정
- 15 * 8 = 120 이니까