환경
- Java 17
- Spring Boot 3.x
- MySQL
- spring-boot-starter-jdbc 사용
1. application.properties 설정
- 꼭 jdbc-url로 적어야 한다.
- 단일 DB 쓸 땐 url도 되지만, 다중 설정에서는 오류난다.
# 첫 번째 DB (기본)
spring.datasource.todo.jdbc-url=jdbc:mysql://localhost:3306/todo
spring.datasource.todo.username=root
spring.datasource.todo.password=1234
spring.datasource.todo.driver-class-name=com.mysql.cj.jdbc.Driver
# 두 번째 DB
spring.datasource.todo-v2.jdbc-url=jdbc:mysql://localhost:3306/todoV2
spring.datasource.todo-v2.username=root
spring.datasource.todo-v2.password=1234
spring.datasource.todo-v2.driver-class-name=com.mysql.cj.jdbc.Driver
2. DataSourceConfig 설정
@Configuration
public class DataSourceConfig {
// 기존 DB
@Primary
@Bean(name = "todoDataSource")
@ConfigurationProperties(prefix = "spring.datasource.todo")
public DataSource todoDataSource() {
return DataSourceBuilder.create().build();
}
// 추가 DB
@Bean(name = "todoV2DataSource")
@ConfigurationProperties(prefix = "spring.datasource.todo-v2")
public DataSource todoV2DataSource() {
return DataSourceBuilder.create().build();
}
}
3. Repository에서 사용 예시
- @Qualifier 어노테이션 사용
- 사용할 DataSource 객체를 선택할 수 있다.
- @Primary 로 설정한 객체는 default 로 사용할 수 있다.
@Repository
public class AuthorRepositoryImpl implements AuthorRepository {
private final JdbcTemplate jdbcTemplate;
public AuthorRepositoryImpl(@Qualifier("todoV2DataSource") DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
}
'Spring > 문법' 카테고리의 다른 글
JSON 포맷 변경하기: Jackson 설정 커스터마이징 (1) | 2025.05.23 |
---|---|
Spring Boot Logger 사용법 – SLF4J & Logback (0) | 2025.05.23 |
Spring Boot 환경별 설정 관리하기 – application-{profile}.properties (0) | 2025.05.23 |
정적 팩토리 메서드 (Static Factory Method) (0) | 2025.05.09 |
MultiValueMap<K, V> (0) | 2025.05.03 |