on
[Spring] 커넥션 풀(Connection Pool) HikariCP, Java로 설정하기
[Spring] 커넥션 풀(Connection Pool) HikariCP, Java로 설정하기
반응형
[Spring] 커넥션 풀(Connection Pool) HikariCP, Java로 설정하기
제 지난 글에서 HikariCP 라이브러리를 root-context.xml 파일로 설정하는 방법에 대해서 다뤘었습니다. 먼저 지난 글을 보시고, 이 글을 보시는 것을 추천합니다.
지난 글
https://lifere.tistory.com/114
지난 글에서 커넥션 풀에 대해 위키 백과의 글을 빌려와 설명하여 생략합니다.
보통 스프링으로 프로젝트를 할 때 xml로 DB Connection 등의 설정을 하는데, 이번에는 Java 소스 파일로 설정하는 방법에 대해 알아보도록 하겠습니다.
1. HikariCP 라이브러리 설치
먼저 HikariCP 라이브러리를 설치해야 해당 라이브러리를 설치할 수 있습니다.
pom.xml 에서 HikariCP 를 추가합니다.
com.zaxxer HikariCP 4.0.3
해당 프로젝트의 Maven Library에 HikariCP.jar 파일이 다운로드되어 등록됩니다.
2. Java로 HikariCP 세팅
root-context.xml 파일을 대신하는 RootConfig 클래스로 HikariCP DataSource를 설정합니다. XML에서 태그로 설정했던 역할을 @Bean을 이용해 한다고 생각하면 됩니다. @Bean이 선언된 메서드의 실행 결과로 반환된 객체는 스프링의 객체(Bean)로 등록됩니다.
1) oracle 설정 버전
package com.project.config; import javax.sql.DataSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; @Configuration @ComponentScan(basePackages = {"com.project.sample"}) public class RootConfig { @Bean public DataSource dataSource() { HikariConfig hikariConfig = new HikariConfig(); hikariConfig.setDriverClassName("oracle.jdbc.driver.OracleDriver"); hikariConfig.setJdbcUrl("jdbc:oracle:thin@localhost:1521:XE"); hikariConfig.setUsername("username"); hikariConfig.setPassword("password"); HikariDataSource dataSource = new HikariDataSource(hikariConfig); return dataSource; } }
2) mariadb 설정 버전
제가 mariadb를 사용하고 있어서 mariadb 설정도 넣었습니다.
package com.project.config; import javax.sql.DataSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; @Configuration @ComponentScan(basePackages = {"com.project.sample"}) public class RootConfig { @Bean public DataSource dataSource() { HikariConfig hikariConfig = new HikariConfig(); hikariConfig.setDriverClassName("org.mariadb.jdbc.Driver"); hikariConfig.setJdbcUrl("jdbc:mariadb://{host address}/{db}"); hikariConfig.setUsername("username"); hikariConfig.setPassword("password"); HikariDataSource dataSource = new HikariDataSource(hikariConfig); return dataSource; } }
3. Test 클래스 작성해서 테스트 하기
테스트 클래스 작성하고, JUnit으로 테스트합니다.
package com.project.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 com.project.config.RootConfig; import lombok.Setter; import lombok.extern.log4j.Log4j; @RunWith(SpringJUnit4ClassRunner.class) //@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml") @ContextConfiguration(classes = {RootConfig.class}) // Java 설정 @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) { // TODO Auto-generated catch block fail(e.getMessage()); } } }
테스트 코드를 실행합니다.
테스트 코드는 스프링에 빈(Bean)으로 등록된 DataSource를 이용해 Connection을 제대로 처리할 수 있는지를 확인해 보는 용도입니다.
실행결과
아직 브라우저에서 최종 결과를 확인하진 못하고 추가 설정을 더 해야 합니다. 관련 내용은 다음 포스팅에서 다루겠습니다.
오늘은 HikariCP를 Java로 설정하는 방법과 JUnit으로 테스트하는 방법에 대해 알아봤습니다.
반응형
from http://lifere.tistory.com/116 by ccl(A) rewrite - 2021-05-14 23:26:40