프로그래밍(Backend)/Spring Batch
[Spring Batch] DB 연결 Config 클래스 작성
bell_hana
2024. 9. 16. 23:05
config 패키지 안에 MetaDBConfig, DataDBConfig 클래스 생성
1. MetaDBConfig.java
@Configuration
public class MetaDBConfig {
// 충돌 방지
@Primary
@Bean
@ConfigurationProperties(prefix = "spring.datasource-meta")
public DataSource metaDBSource() {
return DataSourceBuilder.create().build();
}
@Primary
@Bean
public PlatformTransactionManager metaTranscationManager(){
return new DataSourceTransactionManager(metaDBSource());
}
}
2. DataDBConfig
@Configuration
@EnableJpaRepositories(
basePackages = "com.jongwon.repository",
entityManagerFactoryRef = "dataEntityManager",
transactionManagerRef = "dataTransactionManager"
)
public class DataDBConfig {
@Bean
@ConfigurationProperties(prefix = "spring.datasource-data")
public DataSource dataDBSource(){
return DataSourceBuilder.create().build();
}
@Bean
public LocalContainerEntityManagerFactoryBean dataEntityManager(){
LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
em.setDataSource(dataDBSource());
em.setPackagesToScan(new String[]{"com.jongwon.entity"});
em.setJpaVendorAdapter(new HibernateJpaVendorAdapter());
HashMap<String, Object> properties = new HashMap<>();
// properties를 강제적으로 설정 할 수 있다.
properties.put("hibernate.hbm2ddl.auto", "update");
properties.put("hibernate.show_sql", "true");
em.setJpaPropertyMap(properties);
return em;
}
@Bean
public PlatformTransactionManager dataTransactionManager(){
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(dataEntityManager().getObject());
return transactionManager;
}
}