반응형
DataSource란?
DataSource가 없을 때에는 JDBC를 사용하여 DB에 접근할 때마다 Connection을 열고 끊고를 반복해서 사용해야 하는데, 이 Connection을 열고 끊는 작업의 횟수를 줄이기 위해 DataSource가 미리 Connection을 생성한다. 이 미리 생성한 Connection을 모아두는 곳이 바로 Connection Pool이고, 이 Connection Pool을 사용하기 위한 인터페이스가 DataSource다. 즉, DataSource는 DB와의 연결을 해주는 역할을 하고, 스프링(Spring)은 DataSource를 통해 DB와의 Connect를 획득한다.
Connection Pool이란?
Connection Pool은 위에서 설명한 것과 같이, DB에 접근할 때마다 Connection을 열고 끊고를 계속적으로 반복해야 한다. 그렇게 되면, DB를 연결하는데 시간이 오래 걸리기 때문에, 각 DB의 일정량을 미리 Connection을 만들어 놨다가 DB의 Connection이 있을 경우에 Connection을 제공하는 기능을 한다. 이렇게 할 경우에 DB를 연결하는 시간을 절약할 수 있어 더 빠르게 DB에 접근할 수 있다.
DataSource의 Transaction
DataSource의 기능 중 하나인 트랜잭션(Transaction)이다. Service 단에 @Transactional 애노테이션을 부여하면, Service 단에서 쿼리에 문제가 있을 경우, RollBack이 되거나 정상적으로 수행했으면 Auto Commit이 되는 것처럼 사용할 수 있다.
<bean id="transactionManagerYG"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSourceYG" />
</bean>
<tx:annotation-driven transaction-manager="transactionManagerYG"/>
반응형
'IT > 스프링(Spring)' 카테고리의 다른 글
[스프링/Spring] 스프링 배치(Spring Batch) 파티셔닝(Partitioning) 예제 (0) | 2022.03.28 |
---|---|
[스프링/Spring] 스프링 배치(Spring Batch) org.springframework.data.transaction.ChainedTransactionManager 세팅하는 방법 (0) | 2022.03.28 |
[스프링/Spring] 스프링 배치(Spring Batch) DB를 통한 플로우 (0) | 2022.03.27 |
[스프링/Spring] 스프링 배치(Spring Batch) 적용하는 예제 (0) | 2022.03.27 |
[스프링(Spring)] pom.xml의 구조 (0) | 2022.03.13 |
이클립스 1개의 Tomcat에서 여러 모듈 올리는 방법 (0) | 2022.03.08 |
org.apache.ibatis.exceptions.PersistenceException: ### Error updating database. 에러 해결 방법 (0) | 2022.03.07 |
스프링 프레임워크(Spring Framework) web.xml이란? (0) | 2022.02.05 |
최근댓글