

@Configuration
public class JpaConfig {
@Bean
public DataSource getDataSource() {
public DataSource dataSource() {
DataSource ds = new DataSource();
ds.setDriverClassName("com.mysql.jdbc.Driver");
ds.setUrl("jdbc:mysql://localhost/spring5fs?characterEncoding=utf8");
ds.setUsername("id"); // id 설정
ds.setPassword("password"); // password 설정
ds.setInitialSize(2);
ds.setMaxActive(10);
return ds;
}
}
//DriverClassName, Url, Username, Password 등 물리적 DB와 연결을 위한 기본 정보를 설정합니다.
//미리 생성할 커넥션 개수를 initialSize로 지정합니다.
//maxActive는 활성 상태가 가능한 최대 커넥션 개수를 지정합니다.
//현재 활성 상태의 커넥션이 최대치라면 maxWait시간 만큼 대기하고 대기 시간 내에 풀에 반환된 커넥션이 없으면 Exception이 발생합니다.
Connection Pool

커넥션 풀 관리가 중요한 이유는, 커넥션을 맺는 과정이 상당히 복잡하고 컴퓨터 자원을 많이 사용하기 때문입니다. Hikari는 미리 connection을 pool에 담아두고, 요청이 들어오면 Thread가 pool을 요청하고, Hikari는 Connection을 제공합니다.
(https://velog.io/@house1021/JUnit 참조)
풀링 데이터 소스를 생성하기 위해 스프링 부트는 유효한 드라이버 클래스가 사용 가능한지 확인합니다.
spring.datasource.driver-class-name 속성이 설정되면, 설정된 드라이버 클래스가 로드됩니다.