Skip to content
This repository has been archived by the owner on Aug 13, 2022. It is now read-only.

Commit

Permalink
feat: HikariCP 적용 (#38)
Browse files Browse the repository at this point in the history
  • Loading branch information
oksusutea authored Jul 3, 2021
1 parent 3800123 commit b441039
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 21 deletions.
40 changes: 22 additions & 18 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,37 +1,41 @@
plugins {
id 'org.springframework.boot' version '2.4.5'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
id 'org.springframework.boot' version '2.4.5'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}

group = 'com.f-lab'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

configurations {

all {
// spring-boot-starter-web에있는 logging 모듈과 log4j2 충돌 방지
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
}
all {
// spring-boot-starter-web에있는 logging 모듈과 log4j2 충돌 방지
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
}
}

repositories {
mavenCentral()
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation group: 'mysql', name: 'mysql-connector-java'
implementation group: 'org.mybatis.spring.boot', name: 'mybatis-spring-boot-starter', version: '2.1.4'
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-log4j2'
implementation group: 'org.bgee.log4jdbc-log4j2', name: 'log4jdbc-log4j2-jdbc4.1', version: '1.16'
implementation 'org.jetbrains:annotations:20.1.0'
testImplementation 'org.springframework.boot:spring-boot-starter-test' /* 테스트 환경 구축을 위해 추가 */
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-validation', version: '2.4.5' /* Valid 애노테이션 통해 검증을 위해 추가 */
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation group: 'mysql', name: 'mysql-connector-java'
implementation group: 'org.mybatis.spring.boot', name: 'mybatis-spring-boot-starter', version: '2.1.4'
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-log4j2'
implementation group: 'org.bgee.log4jdbc-log4j2', name: 'log4jdbc-log4j2-jdbc4.1', version: '1.16'
implementation 'org.jetbrains:annotations:20.1.0'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
/* 테스트 환경 구축을 위해 추가 */
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-validation', version: '2.4.5'
/* Valid 애노테이션 통해 검증을 위해 추가 */
implementation group: 'com.zaxxer', name: 'HikariCP', version: '4.0.3'
/* hikari CP 커넥션 풀 사용을 위해 추가 */

}

test {
useJUnitPlatform()
useJUnitPlatform()
}
16 changes: 16 additions & 0 deletions src/main/java/com/flab/kidsafer/config/DatabaseConfig.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
package com.flab.kidsafer.config;

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import javax.sql.DataSource;

Expand All @@ -24,9 +28,21 @@
*/

@Configuration
@PropertySource("classpath:/application.properties")
@MapperScan(basePackages = "com.flab.kidsafer.mapper")
public class DatabaseConfig {

@Bean
@ConfigurationProperties(prefix = "spring.datasource.hikari")
public HikariConfig hikariConfig() {
return new HikariConfig();
}

@Bean(destroyMethod = "close")
public DataSource dataSource() {
return new HikariDataSource(hikariConfig());
}

/*
* SqlSessionFactory :
* - datasource의 정보를 참조하여 DB와 연결을 가능케하는 인터페이스입니다.
Expand Down
8 changes: 5 additions & 3 deletions src/main/resources/application.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
spring.datasource.url=jdbc:mysql://localhost:3306/<디비이름>?useUnicode=true@characterEncoding=utf8&serverTimezone=Asia/Seoul
spring.datasource.username=유저이름
spring.datasource.password=비밀번호
spring.datasource.hikari.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.hikari.jdbc-url=jdbc:mysql://localhost:3306/localdb?useUnicode=true@characterEncoding=utf8&serverTimezone=UTC
spring.datasource.hikari.username=kid
spring.datasource.hikari.password=kid
spring.datasource.hikari.pool-name=HikariPool

0 comments on commit b441039

Please # to comment.