스프링 DBCP 활용
📚 C3P0
https://mvnrepository.com/artifact/com.mchange/c3p0/0.10.0
https://www.mchange.com/projects/c3p0/
먼저 pom.xml의 dependencies 태그 안에 다음의 내용을 넣어준다.
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.10.0</version>
</dependency>
여기서 스프링의 장점을 하나 확인해볼 수 있는데, 여기저기 돌아다니며 설정을 일일이 바꿔줄 필요없이 config.xml에서 기존의 DriverManagerDataSource로 설정된 내용만 지워주고 C3P0로 바꿔주면 되니 매우 간단하다.
config.xml
<bean class="com.mchange.v2.c3p0.ComboPooledDataSource" id="dataSource">
<property name="driverClass" value="oracle.jdbc.driver.OracleDriver" />
<property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:xe" />
<property name="user" value="user1" />
<property name="password" value="1111" />
<property name="initialPoolSize" value="5" />
<property name="maxPoolSize" value="30" />
</bean>
드라이버 매니저와는 다르게 setter 메서드들의 이름이 약간씩 다르고, poolsize를 조절해서 동시에 연결 가능한 수를 조정할 수 있다. 이외에 DB를 연동하여 사용하는 방법은 동일하다.
📚 Apache Commons DBCP
https://mvnrepository.com/artifact/org.apache.commons/commons-dbcp2/2.12.0
https://commons.apache.org/proper/commons-dbcp/
https://commons.apache.org/proper/commons-dbcp/apidocs/org/apache/commons/dbcp2/BasicDataSource.html
pom.xml의 dependencies 태그 안에 다음의 내용을 넣어준다.
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.12.0</version>
</dependency>
마찬가지로 기존의 내용을 Apache Commons DBCP를 생성하는 빈 태그로 바꿔주면 된다.
config.xml
<bean class="org.apache.commons.dbcp2.BasicDataSource" id="dataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" />
<property name="username" value="user1" />
<property name="password" value="1111" />
<property name="initialSize" value="5" />
<property name="defaultAutoCommit" value="true" />
<property name="maxIdle" value="5" />
</bean>
maxIdle 속성은 아무도 커넥션 풀을 사용하지 않아도 5개는 풀을 유지하겠다는 의미이다.
📚 HikariCP
https://mvnrepository.com/artifact/com.zaxxer/HikariCP/5.1.0
https://github.com/brettwooldridge/HikariCP
pom.xml의 dependencies 태그 안에 다음의 내용을 넣어준다.
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>5.1.0</version>
</dependency>
config.xml
<bean class="com.zaxxer.hikari.HikariConfig" id="hikariConfig">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:xe" />
<property name="username" value="user1" />
<property name="password" value="1111" />
</bean>
<bean class="com.zaxxer.hikari.HikariDataSource" id="dataSource">
<constructor-arg ref="hikariConfig"></constructor-arg>
</bean>
다른 dbcp와는 다르게 bean 태그가 두 개 필요하다.
댓글남기기