커넥션 풀 (Connection Pool)
데이터베이스 통신 시 매번 연결을 해야하는 것은 상당히 비효율적이다.
커넥션 풀은 여러 DB 연결을 만들어두고 필요할 때 이를 빌려서 사용할 수 있으며,
이는 데이터베이스의 속도가 향상되고 자원 관리에 효율적이다.
pom.xml에 HikariCP 추가 후 Maven Update
...
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>2.7.4</version>
</dependency>
...
root-context.xml에 아래 코드 추가 (Spring Bean 등록)
...
<!-- HikariCP 설정 -->
<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
<property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:XE"></property>
<property name="username" value="maru"></property>
<property name="password" value="1234"></property>
</bean>
<!-- HikariCP 설정 -->
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
<constructor-arg ref="hikariConfig" />
</bean>
...
JUnit 테스트를 위한 자바 테스트 클래스 작성
package com.myspring.persistence;
import static org.junit.Assert.fail;
import java.sql.Connection;
import javax.sql.DataSource;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import lombok.Setter;
import lombok.extern.log4j.Log4j;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
@Log4j
public class DataSourceTests {
@Setter(onMethod_ = { @Autowired })
private DataSource dataSource;
@Test
public void testConnection() {
try (Connection con = dataSource.getConnection()){
log.info(con);
} catch(Exception e) {
fail(e.getMessage());
}
}
}
테스트 클래스파일 우클릭 > Run As > JUnit Test
정상일 경우 아래 콘솔 로그 출력
'Spring' 카테고리의 다른 글
스프링 - Mybatis 사용 (Mapper) (0) | 2025.05.20 |
---|---|
스프링 - Mybatis 연동 (0) | 2025.05.20 |
스프링 - 오라클 데이터베이스 연동 (0) | 2025.05.18 |
스프링 - 어노테이션 정리 (0) | 2025.05.18 |
스프링 - JUnit을 이용한 스프링 테스트 (0) | 2025.05.18 |