일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ResponseEntity
- 스프링 게시판
- 스프링 포트폴리오
- 파일 업로드
- 로그인 기능
- 삭제 구현
- 스프링 쇼핑몰 프로젝트
- 스프링 게시판 구현
- 정규표현식
- 쇼핑몰 포트폴리오
- 스프링 이미지
- 로그아웃 기능 구현
- 스프링 메일 전송
- 스프링 쇼핑몰
- spring 프로젝트
- 인증번호 전송
- Bcrypt
- arraylist
- 스프링 업로드
- 회원가입 기능
- 스프링 HikariCP
- spring 쇼핑몰
- 이미지 출력
- oracle 설치방법
- 쇼핑몰 프로젝트
- 스프링 프로젝트
- 스프링 프로젝트 기본 설정
- BCrypt 적용
- 스프링 파일 삭제
- 스프링 프로젝트 설정
- Today
- Total
Kim VamPa
[Spring][04]커넥션 풀 설정(HikariCP) 본문
개인 공부 후 자료를 남기기 위한 목적이기에 내용 상에 오류가 있을 수 있습니다.
git주소(Oracle DB) : https://github.com/sjinjin7/blog_study
git주소(MySQL DB) : https://github.com/sjinjin7/blog_study-MYSQL-base-
목표
- "커넥션 풀"에 대한 개념은 다음 링크를 참고 부탁드립니다.
https://kimvampa.tistory.com/44 - 커넥션 풀은 spring-jdbc 라이브러리에서 제공하는 방식, Apache에서 제공하는 jdbc 등 여러 종류가 있습니다.
- 이번 포스팅에선 여러 커넥션 풀 중에 "HikariCP"를 스프링 프로젝트에 적용시켜보겠습니다. 적용 후 정상적으로 작동하는지 테스트까지 하는 것이 해당 포스팅의 목적입니다.
목차
1. HikariCP 라이브러리 추가(+ DataSource 설정)
2. 테스트
1. HikariCP 라이브러리 추가와 DataSource 설정
라이브러리 추가는 매우 간단합니다. pom.xml에 Maven코드를 추가만 시켜주면 되기 때문입니다. 하지만 라이브러리를 추가로만은 'HikariCP 커넥션 풀'을 사용할 수 없습니다. root-context.xml에 DataSource에 대한 설정을 추가해주어야만 '커넥션 풀' 사용이 가능합니다. 따라서 [1-1 라이브러리 추가 방법], [1-2 DataSource 설정 방법]순으로 알아보겠습니다.
* HicariCP는 Java 버전을 무엇을 쓰냐에 따라 다른 버전을 사용하여야 합니다. Java8 버전 경우 3.4.2 버전을 사용하면 됩니다. 다른 버전을 사용하실 경우 다음의 링크를 참고 부탁드립니다.
https://github.com/brettwooldridge/HikariCP
1-1 HikariCP라이브러리 추가 방법
1) Maven Repository 사이트에서 "HikariCP"를 검색하시면 제일 첫 항목을 클릭하시면 pom.xml(Maven 설정)에 추가할 수 있는 코드가 있습니다. 저는 Java8을 사용하기 때문에 3.4.2 버전을 선택하였습니다. Maven 코드를 복사합니다.
<!-- https://mvnrepository.com/artifact/com.zaxxer/HikariCP -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>3.4.2</version>
</dependency>
2) 복사한 코드를 프로젝트 pom.xml에 추가해주고 저장합니다. 라이브러리 추가가 완료되었습니다.
1-2 DataSource 설정 방법
1) root-context.xml 에 들어갑니다.
2) <bean> 태그를 정의해서 설정하겠습니다. 아래의 코드를 추가 후 저장해주시면 됩니다. 해당 코드들은 우리가 추가한 HikariCP 라이브러리에 있는 클래스를 <property> 태그를 이용해서 속성을 설정하는 방법입니다.
- Oracle 데이터베이스 DataSource 설정 코드입니다.
- Oracle Plus에서 계정 로그인 시 'c##'이 필요한 버전의 경우 아래의 코드 "계정명"에도 'c##'을 붙여주어야합니다. 19버전 경우 'c##'을 계정명 앞에 붙여줄 필요가 없습니다.
<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
<property name="driverClassName" value="oracle.jdbc.pool.OracleDataSource"></property>
<property name="jdbcUrl" value="jdbc:oracle:thin:@URL주소:1521:시드명"></property>
<!-- Oracle 11g 경우 value="jdbc:oracle:thin:@URL주소:1521:XE" -->
<!-- Oracle 19 경우 value="jdbc:oracle:thin:@URL주소:1521:orcl" -->
<property name="username" value="계정명"></property>
<property name="password" value="비밀번호"></property>
</bean>
<bean id="datasource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
<constructor-arg ref="hikariConfig"></constructor-arg>
</bean>
- MySQL 데이터베이스 DataSource 설정 코드입니다.
<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/데이터베이스명?serverTimezone=Asia/Seoul"></property>
<property name="username" value="사용자명"></property>
<property name="password" value="비밀번호"></property>
</bean>
<bean id="datasource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
<constructor-arg ref="hikariConfig"></constructor-arg>
</bean>
2. 테스트
진행할 테스트는 스프링에 빈(Bean)으로 등록된 DataSource를 이용해서 Connection을 제대로 처리할 수 있는지를 확인하기 위한 용도입니다.
*테스트 코드는 root-context.xml에 DataSource를 설정하셨다면 데이터베이스 종류에 상관없이 실행이 됩니다.
1) 먼저 테스트를 위해 존재하는 src/test/ java 경로에 com.vam.persistence를 생성하시고 DataSourceTest.java 클래스를 생성합니다.
2) 아래의 코드를 추가합니다.
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
public class DataSourcetest {
@Autowired
private DataSource dataSource;
@Test
public void testConnection() {
try(
Connection con = dataSource.getConnection();
){
System.out.println("con="+con);
}catch(Exception e) {
e.printStackTrace();
}
}
}
3. Junit 테스트를 진행합니다.
4. 결과를 확인합니다.
- Oracle
- MySQL
Reference
- "코드로 배우는 스프링 웹 프로젝트"(남가람북스)
- https://github.com/brettwooldridge/HikariCP
Date
- 2020.04.10 작성
'공부 > 스프링' 카테고리의 다른 글
[Spring][05-2]MyBatis 사용(Mapper 인터페이스, Mapper XML) (6) | 2020.04.13 |
---|---|
[Spring][05-1]MyBatis 라이브러리 추가, SQLSessionFactory 설정 (3) | 2020.04.11 |
[Spring][03-02]JDBC 연결 테스트 (MySQL DB 연결) (2) | 2020.04.09 |
[Spring][03-01]JDBC 연결 테스트 (Oracle DB 연결) (8) | 2020.04.09 |
[Spring][02]MVC 프로젝트 생성 및 기본환경 설정(의존성 주입 테스트) (2) | 2020.03.30 |