DataSource, TransactionManager 자동 등록

jylee·2024년 2월 1일
0

그냥생각나는거

목록 보기
40/48

DataSource 자동 등록

스프링 부트는 데이터소스( DataSource )를 스프링 빈에 자동으로 등록한다.

자동으로 등록되는 스프링 빈 이름: dataSource

개발자가 직접 데이터소스를 빈으로 등록하면 스프링 부트는 데이터소스를 자동으로 등록하지 않는다.

이때 스프링 부트는 다음과 같이 application.properties 에 있는 속성을 사용해서 DataSource 를 생성한다. 그리고 스프링 빈에 등록한다.

application.properties

spring.datasource.url=jdbc:h2:tcp://localhost/~/test
spring.datasource.username=sa
spring.datasource.password=

스프링 부트가 기본으로 생성하는 데이터소스는 커넥션풀을 제공하는 HikariDataSource 이다. 커넥션풀과 관련된 설정도 application.properties 를 통해서 지정할 수 있다.
spring.datasource.url 속성이 없으면 내장 데이터베이스(메모리 DB)를 생성하려고 시도한다.

TransactionManager 자동 등록

스프링 부트는 적절한 트랜잭션 매니저( PlatformTransactionManager )를 자동으로 스프링 빈에 등록한다.

자동으로 등록되는 스프링 빈 이름: transactionManager

개발자가 직접 트랜잭션 매니저를 빈으로 등록하면 스프링 부트는 트랜잭션 매니저를 자동으로 등록하지 않는다.

어떤 트랜잭션 매니저를 선택할지는 현재 등록된 라이브러리를 보고 판단

  • JDBC를 기술을 사용 -> DataSourceTransactionManager 빈으로 등록
  • JPA를 사용 -> JpaTransactionManager 빈으로 등록
  • 둘 다 사용 -> JpaTransactionManager 등록한다.
    (JpaTransactionManager 는 DataSourceTransactionManager 가 제공하는 기능도 대부분 지원)
profile
ㅎㅇ

0개의 댓글