티스토리 뷰

카테고리 없음

JPA와 JDBC동시에 사용하기

KyeongRok Kim 2022. 4. 19. 16:05

개요

요즘 같이 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

 

 

참고

https://sundries-in-myidea.tistory.com/133

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함