일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 Boot
- JDBC TEMPLATE
- myBatis
- @AspectJ
- STS
- SpringJDBC
- @JUnit
- Framework
- Ubunt
- java spring
- spring
- Di
- Linux
- @Spring-Test
- 마이바티스
- @test
- spring aop
- 컨테이너
- java
- 리눅스
- Dependency Injection
- XML
- unix
- spring framework
- AOP
- JdbcTemplate
- Spring JDBC
- pointcut
- 프로퍼티
- POJO
Archives
- Today
- Total
개키우는개발자 : )
DataSource 자동 구성 클래스 본문
반응형
요약 및 핵심 개념
스프링 부트 환경에서 DataSource 자동 구성 클래스를 설계 및 구현하는 과정을 다루었습니다. 특히 조건부 빈 등록, SimpleDriverDataSource와 HikariCP와 같은 데이터 소스의 활용, 외부 설정을 통한 프로퍼티 관리, 그리고 테스트 기반 데이터 소스 검증 방법을 설명했습니다.
핵심 내용
1. DataSourceConfig 클래스 설계
- 자동 구성 클래스 정의:
- @MyAutoConfiguration 애노테이션을 통해 자동 구성 클래스 선언.
- 조건부 애노테이션 @ConditionalMyOnClass를 사용하여 특정 클래스(JdbcOperations)가 로딩된 경우에만 빈 생성.
2. SimpleDriverDataSource 빈 등록
- 특징:
- 스프링에서 제공하는 기본 데이터 소스 구현체.
- 연결 풀 없이 매번 새로운 커넥션을 생성하므로 운영 환경에서는 부적합.
- 구성 정보:
- 드라이버 클래스, URL, 사용자 이름 및 비밀번호를 @ConfigurationProperties를 통해 외부 설정에서 로딩.
- 프로퍼티 클래스(MyDataSourceProperties)로 데이터를 주입받아 사용.
3. HikariCP 데이터 소스 등록
- 특징:
- 고성능 커넥션 풀 구현체로 스프링 부트에서 기본적으로 제공.
- 조건부 등록:
- @ConditionalMyOnClass로 Hikari 라이브러리의 존재 여부 확인.
- @ConditionalOnMissingBean으로 다른 데이터 소스 빈이 없는 경우 SimpleDriverDataSource를 대체로 등록.
- 구현:
- HikariDataSource를 사용하여 간단히 드라이버, URL, 사용자 이름, 비밀번호 설정 가능.
4. 프로퍼티 관리 및 외부 설정
- 구조화된 설정:
- @ConfigurationProperties(prefix = "data")를 통해 드라이버 이름, URL, 사용자 이름, 비밀번호 등 DB 연결 정보를 외부 설정에서 관리.
- 테스트 설정:
- 테스트 시 @PropertySource를 사용해 application.properties 파일의 프로퍼티를 로딩.
5. 데이터 소스 테스트
- JUnit 기반 스프링 컨테이너 테스트:
- @ExtendWith(SpringExtension.class)와 @ContextConfiguration으로 스프링 컨테이너를 띄워 빈 테스트.
- @Autowired를 사용하여 생성된 데이터 소스 빈 주입.
- 테스트 방식:
- getConnection() 메소드 호출로 연결 성공 여부 확인.
- 커넥션 종료(close())로 자원 해제.
6. HikariCP 테스트
- 테스트 목적:
- 히카리 커넥션 풀이 정상적으로 동작하는지 확인.
- 로그 분석:
- Hikari 초기화 및 종료 로그를 통해 커넥션 풀이 잘 구성되었는지 검증.
결론
DataSourceConfig 클래스를 통해 데이터 소스를 유연하게 구성하는 방법을 익혔습니다.
- 운영 환경:
- HikariCP를 사용하여 성능 최적화.
- 테스트 환경:
- SimpleDriverDataSource와 H2 데이터베이스를 활용한 빠른 테스트 가능.
- 조건부 빈 등록:
- 필요에 따라 적절한 데이터 소스를 선택하고 등록하도록 설계.
반응형
'토비의 스프링 부트 - 이해와 원리 > 섹션10 - Spring JDBC 자동 구성 개발' 카테고리의 다른 글
리포지토리를 사용하는 HelloService (1) | 2025.01.04 |
---|---|
Hello 리포지토리 (3) | 2025.01.03 |
JdbcTemplate과 트랜잭션 매니저 구성 (0) | 2025.01.03 |
자동 구성 클래스와 빈 설계 (0) | 2025.01.03 |
Comments