Helmi

커넥션 풀 설정 본문

Spring

커넥션 풀 설정

Helmi 2023. 4. 12. 19:37

여러 명의 사용자를 동시에 처리해야하는 웹 애플리케이션의 경우 데이터 베이스 연결을 이용할 때 커넥션 풀(Connection Pool) 이용. 아예 스프링에 커넥션 풀 등록해서 사용하는 것이 좋음. 

 

Java에서는 DataSource라는 인터페이스 통해 커넥션 풀 사용. 미리 연결 맺어주고 반환하는 구조 이용해 성능 향상 꾀하는 것.

 

커넥션 풀 종류 다양. ex) spring-jdbc / HikariCP (요즘 유행)

 

pom.xml

<!-- https://mvnrepository.com/artifact/com.zaxxer/HikariCP -->
<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>5.0.1</version>
</dependency>

root-context.xml 안에 설정은 직접 <bean> 태그 정의해 작성.

<bean> 태그 내에는 <property> 이용해 여러 속성 대해 설정 가능.

 

root-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:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">

	<!-- Root Context: defines shared resources visible to all other web components -->

	<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
		<property name="driverClassName"
			value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"></property>
		<property name="jdbcUrl"
			value="jdbc:log4jdbc:oracle:thin:@localhost:1521:xe"></property>
		<property name="username" value="book_ex"></property>
		<property name="password" value="1234"></property>
	</bean>

	<!-- HikariCP configuration -->
	<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource"
		destroy-method="close">
		<constructor-arg ref="hikariConfig" />
	</bean>

	<context:component-scan
		base-package="com.helmi.sample">
	</context:component-scan>

</beans>

스프링에서 root-context.xml 은 스프링이 로딩되면서 읽어들이는 문서. 주로 이미 만들어진 클래스들을 이용해 스프링의 빈(Bean)으로 등록할 때 사용

 

일반적으로 프로젝트에 직접 작성하는 클래스들은 어노테이션 이용하는 경우 많고, 외부 jar 파일 등으로 사용하는 클래스들은 <bean> 태그 이용해 작성하는 경우가 대부분.