티스토리 뷰
개요
요즘 같이 MSA 아키텍처 시대에 이럴 일이 얼마나 있겠습니까마는 프로젝트를 하다보면 한개의 프로젝트에 두개의 DB프레임웍을 써야 하는 경우가 있습니다.
JDBC나 MyBatis등을 사용하다가 JPA로 넘어가보고 싶을때 잠시 프로젝트에 두개의 DB프레임웍이 공존해야 하는 순간이 있습니다.
결국은 한쪽으로 넘어갈 것이지만 이미 운영중이거나 보안 이슈등이 있어서 한번에 못갈 때 혹은 두가지를 넣고 테스트를 해야 하는 경우 입니다.
이 방법을 쓸 경우 포기해야 하는 것이 있습니다. application.yml을 이용해 모든 설정을 하는 것을 내려놓아야 합니다. 같이 쓰는 방법도 있지만 손이 많이 가기 때문입니다.
application.yml
spring:
datasource:
jdbc-url:
password:
jpa-datasource:
jdbc-url:
password:
config.JPADBConfig.java
@Configuration
@EnableJpaRepositories(
basePackages = "com.hello.world",
entityManagerFactoryRef = "adminEntityManager")
public class JPadbConfig{
@Bean
@Primary
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource adminDataSource(){
return DataSourceBuilder.create().build();
}
@Bean
@Primary
public LocalContainerEntityManagerFactoryBean adminEntityManager() {
LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
em.setDataSource(adminDataSource());
em.setJpaVendorAdapter(new HibernateJpaVendorAdapter());
return em;
}
}
DB설정파일 둘 중 하나는 @Primary를 넣어주어야 합니다.
config.JDBCConfig.java
@Configuration
public class JDBCConfig {
@Bean
@ConfigurationProperties(prefix = "spring.jdbc-datasource"
public DataSource jdbcDataSource() {
return DataSourceBuilder.create().build();
}
@Bean
public JdbcTemplate jdbcTemplate(){
return new JdbcTemplate(this.jdbcDataSource());
}
}
persistence.xml
참고
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- docker container tissue box
- 싱가폴
- 도커각티슈박스
- shellscript
- 2017 티스토리 결산
- docker container case
- 도커티슈박스
- 도커각티슈케이스
- vim
- docker container
- Sh
- 이직
- 도커티슈케이스
- docker container tissue
- 도커컨테이너
- Linux
- docker container whale
- 개발자
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함