반응형
database와의 연결 설정 파일을 다중으로 사용해야할 경우, main으로 사용 할 config를 지정해주어야한다.@Praimary 어노테이션을 통해서 의존성 주입시 최우선 bean임을 명시해줄 수 있다
@Configuration
@EnableJpaRepositories
@EnableTransactionManagement
class ApplicationConfig {
@Bean
@Praimary // 해당 어노테이션을 통해서 메인 설정임을 지정해주어야함
public DataSource dataSource() {
EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
return builder.setType(EmbeddedDatabaseType.HSQL).build();
}
@Bean
@Praimary // 해당 어노테이션을 통해서 메인 설정임을 지정해주어야함
public LocalContainerEntityManagerFactoryBean entityManagerFactory(
EntityManagerFactoryBuilder builder,
DataSource dataSource) {
return builder
.dataSource(dataSource)
.packages("com.~~~packagesPath")
.persistenceUnit("Key 값으로 사용하고싶은 명칭")
.build();
}
public PlatformTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) {
return new JpaTransactionManager(entityManagerFactory);
}
서브로 사용할 설정의 경우@Qualifier("subEntityManagerFactory") 을 사용하여 bean 매칭을 진행해야한다.
@Configuration
@EnableJpaRepositories
@EnableTransactionManagement
class ApplicationConfig {
@Bean(name="subDataSource")
public DataSource dataSource() {
EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
return builder.setType(EmbeddedDatabaseType.HSQL).build();
}
@Bean(name="subEntityManagerFactory")
public LocalContainerEntityManagerFactoryBean entityManagerFactory(
EntityManagerFactoryBuilder builder,
@Qualifier("subDataSource") DataSource dataSource) {
return builder
.dataSource(dataSource)
.packages("com.~~~packagesPath")
.persistenceUnit("Key 값으로 사용하고싶은 명칭")
.build();
}
public PlatformTransactionManager transactionManager(
@Qualifier("subEntityManagerFactory") EntityManagerFactory entityManagerFactory) {
return new JpaTransactionManager(entityManagerFactory);
}
}반응형
'Spring' 카테고리의 다른 글
| spring - handler(핸들러)란 무엇인가? (1) | 2024.08.29 |
|---|---|
| JPA Could not write JSON: failed to lazily initialize a collection of role 에러 해결 (0) | 2024.04.04 |
| Spring database config bean 설정 예제 by JPA (1) | 2024.04.04 |
| Spring AOP, AOP 용어 정리 (0) | 2022.07.05 |
| [Spring Boot] @SpringBootApplication (0) | 2022.06.30 |