반응형
hikaricp(히카리 커넥션풀)은 빠른 속도로 인해 점점 더 주목 받고 있는 커넥션 풀입니다.
공식 홈페이지 : https://github.com/brettwooldridge/HikariCP
위 홈페이지 내용을 보면 "현존하는 가장 빠른 커넥션 풀" 이라고 소개하고 있습니다.
또한 안정성도 보장됩니다. boneCP의 경우 히카리로 인해 개발을 중단한다고 써져 있습니다.
설치 및 사용 방법은 아래와 같습니다.
1. pom.xml 설정 ( maven 설정 )
1) HikariCP 추가 ( 여기서 버전은 JAVA 버전에 맞게 써줘야 합니다. )
2) mybatis 추가
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.3</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.0</version>
</dependency>
2. jdbc-context.xml 내용 작성
/webapp/WEB-INF/spring/jdbc-context.xml 파일 생성 후 아래 내용 작성
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>/WEB-INF/spring/jdbc.properties</value>
</list>
</property>
</bean>
<!-- Hikari CP 설정 -->
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource">
<constructor-arg>
<bean class="com.zaxxer.hikari.HikariConfig">
<constructor-arg>
<props>
<prop key="dataSource.url">${dataSource.url}</prop>
<prop key="dataSource.user">${dataSource.user}</prop>
<prop key="dataSource.password">${dataSource.password}</prop>
</props>
</constructor-arg>
<property name="dataSourceClassName" value="${property.dataSourceClassName}" />
<property name="autoCommit" value="false" />
<property name="idleTimeout" value="${property.hikari.idleTimeout}" />
<property name="maximumPoolSize" value="${property.hikari.maximumPoolSize}" />
<property name="connectionTestQuery" value="SELECT 1 from dual" />
<property name="maxLifetime" value="${property.hikari.maxLifetime}" />
</bean>
</constructor-arg>
</bean>
<!-- transaction 설정 -->
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" p:dataSource-ref="dataSource" />
<tx:annotation-driven transaction-manager="txManager" />
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="insert*" propagation="REQUIRED" rollback-for="Exception,BizException" />
<tx:method name="update*" propagation="REQUIRED" rollback-for="Exception,BizException" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:advisor advice-ref="txAdvice" pointcut="execution(* com.youn.test..service.*.*(..))" />
</aop:config>
<!-- mybatis 설정 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"
p:dataSource-ref="dataSource"
p:typeAliasesPackage="com.youn.test"
p:mapperLocations="classpath*:com/youn/test/maria/*.xml" />
<bean id="sqlMapMysql" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
</beans>
3. properties 작성 ( 여기서는 DB를 mysql(mariadb) 사용 )
( 생략하고 xml 파일에 직접 값을 써도 됩니다. )
jdbc-context.xml와 같은 경로에 jdbc.properties을 생성하고 아래와 같이 작성합니다.
dataSource.url=jdbc:mysql://[DB IP]:[DB port]/[접속 DB]?useUnicode=yes&characterEncoding=utf-8
dataSource.user=[DB 계정]
dataSource.password=[DB 계정의 비밀번호]
property.dataSourceClassName=com.mysql.jdbc.jdbc2.optional.MysqlDataSource
property.hikari.maximumPoolSize=10
property.hikari.idleTimeout=3600000
property.hikari.maxLifetime=1800000
728x90
반응형
'Database ( DB ) > Database' 카테고리의 다른 글
파티션테이블 제약사항 (0) | 2019.08.11 |
---|---|
[centos 7] mariadb 설치 (0) | 2019.08.11 |
[mysql] utf-8 procedure나 function에서 한글 깨짐 문제 (0) | 2019.08.11 |
[Oracle] MView (Materialized Views) (0) | 2019.08.11 |
[oracle] hint (0) | 2019.08.11 |