데이터소스와 트랜잭션 매니저를 스프링 빈으로 직접 등록
@Bean
DataSource dataSource() {
return new DriverManagerDataSource(URL, USERNAME, PASSWORD);
}
@Bean
PlatformTransactionManager transactionManager() {
return new DataSourceTransactionManager(dataSource());
}
스프링 부트가 등장하기 이전에는 데이터소스와 트랜잭션 매니저를 개발자가 직접 스프링 빈ㄴ으로 등록해서 사용했다.
그런데 스프링 부트로 개발을 시작한 개발자라면 직접 등록한 적이 없다.
기존에는 직접 빈에 등록해야 했지만 스프링 부트가 나오면서 많은 부분이 자동화되었다.
- 데이터소스 - 자동 등록
- 스프링 부트는 데이터소스(DataSource)를 스프링 빈에 자동으로 등록한다.
- 자동으로 등록되는 스프링 빈 이름 : 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)를 생성하려고 시도한다.
- 트랜잭션 매니저 - 자동 등록
- 스프링 부트는 적절한 트랜잭션 매니저를 자동으로 스프링 빈에 등록한다.(ex:PlatformTransactionManager)
- 현재 등록된 라이브러리를 보고 판
- 자동으로 등록되는 스프링 빈 이름: transactionManager
- 직접 트랜잭션 매니저를 빈으로 등록하면 스프링 부트는 자동으로 등록하지 않는다.
- 스프링 부트는 적절한 트랜잭션 매니저를 자동으로 스프링 빈에 등록한다.(ex:PlatformTransactionManager)
스프링 부트의 데이터소스 자동 등록에 대한 더 자세한 내용은 다음 스프링 부트 공식 메뉴얼을 참고하자.
https://docs.spring.io/spring-boot/docs/current/reference/html/
자세한 설정 속성은 다음을 참고하자.
https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html
'Spring > JDBC' 카테고리의 다른 글
[Spring DB 개념] 스프링 예외 추상화 (0) | 2024.08.12 |
---|---|
[Spring] 예외 누수 문제 해결 (0) | 2024.08.09 |
[Spring DB 개념] 트랜잭션 - AOP(proxy) (1) | 2024.08.08 |
[Spring DB 개념] 트랜잭션 탬플릿 (0) | 2024.08.08 |
[Spring DB 개념] 트랜잭션 - 트랜잭션 매니저 동작 흐름 정리 및 정리 (0) | 2024.07.26 |