일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- spring aop
- Dependency Injection
- JdbcTemplate
- pointcut
- AOP
- JDBC TEMPLATE
- STS
- Di
- java
- Linux
- @test
- spring
- POJO
- SpringJDBC
- myBatis
- unix
- Spring Boot
- @AspectJ
- Framework
- XML
- Spring JDBC
- java spring
- Ubunt
- 프로퍼티
- spring framework
- @Spring-Test
- @JUnit
- 마이바티스
- 컨테이너
- 리눅스
Archives
- Today
- Total
개키우는개발자 : )
자동 구성 클래스와 빈 설계 본문
반응형
요약 및 핵심 개념
스프링 JDBC 기술을 활용하여 자동 구성 클래스를 설계하고 데이터 소스, JDBC 템플릿, 트랜잭션 매니저 등을 효과적으로 구성하는 방법을 다뤘습니다. 이 과정에서 JDBC 템플릿의 동작 원리, 조건부 애노테이션을 활용한 유연한 구성, 인메모리 데이터베이스(H2)를 이용한 간단한 테스트 환경 설정 방법을 포함합니다.
핵심 내용
1. 자동 구성 클래스 설계
- JDBC 기술 기반의 자동 구성을 위해 DataSourceConfig 클래스를 설계.
- 특정 조건에서만 빈을 생성하기 위해 조건부 애노테이션(@Conditional)을 사용.
- 스프링의 JdbcOperations 인터페이스를 기반으로 구성 확인 후 관련 빈 등록.
2. DataSource 빈 구성
- SimpleDriverDataSource:
- 기본 JDBC 연결을 제공하는 간단한 데이터 소스.
- 주의: 실전에서는 비효율적이므로 테스트 목적에만 사용.
- HikariCP:
- 커넥션 풀을 지원하는 고성능 데이터 소스.
- 스프링 부트의 기본 데이터 소스 라이브러리로 설정.
- 프로퍼티 활용:
- 데이터 소스 연결 정보를 코드에 고정하지 않고 Properties로 외부 설정.
- @ConfigurationProperties를 통해 프로퍼티 클래스와 바인딩.
3. JDBC 템플릿 활용
- 데이터 소스 빈을 기반으로 JdbcTemplate 자동 구성.
- JDBC 템플릿은 SQL 실행을 단순화하고 템플릿-콜백 패턴을 적용.
- 주요 사용 방법:
- 데이터 조회: queryForObject.
- 데이터 변경: update.
4. 트랜잭션 관리
- JdbcTransactionManager:
- 트랜잭션 경계를 설정하여 데이터 작업의 무결성을 보장.
- @Transactional 애노테이션으로 선언적 트랜잭션 관리 지원.
- 조건부 애노테이션:
- @ConditionalOnSingleCandidate: 데이터 소스 빈이 하나일 때만 트랜잭션 매니저와 JDBC 템플릿을 자동 등록.
5. 인메모리 데이터베이스 설정
- H2 데이터베이스:
- 테스트 목적으로 임베디드 모드로 활용 가능.
- 애플리케이션과 함께 시작 및 종료.
- 기본 프로퍼티를 제공하여 간단한 설정으로 작동.
- 장점:
- DB 설치 없이도 빠르게 테스트 환경 구성.
- URL, 유저 이름, 비밀번호 등 추가 설정 필요 없음.
결론
스프링 부트에서 JDBC 기술과 자동 구성 기능을 활용하면 데이터 소스와 관련된 빈을 효과적으로 관리할 수 있습니다.
- 실제 운영 환경: HikariCP를 사용하여 성능 최적화.
- 테스트 환경: H2 데이터베이스로 간단하게 설정.
- JDBC 템플릿 및 트랜잭션 관리: 선언적 트랜잭션과 템플릿-콜백 패턴을 활용하여 간편한 데이터 작업 구현.
이러한 방법을 통해 실전과 테스트 환경 모두에서 효율적인 데이터베이스 작업 환경을 구축할 수 있습니다.
반응형
'토비의 스프링 부트 - 이해와 원리 > 섹션10 - Spring JDBC 자동 구성 개발' 카테고리의 다른 글
리포지토리를 사용하는 HelloService (1) | 2025.01.04 |
---|---|
Hello 리포지토리 (3) | 2025.01.03 |
JdbcTemplate과 트랜잭션 매니저 구성 (0) | 2025.01.03 |
DataSource 자동 구성 클래스 (0) | 2025.01.03 |
Comments