Develop_Backend/Spring

Springboot 에서 mybatis + 외부 jar + 다중 DB(Multiple DataSources) 구성시 빌드 에러

임치비 2025. 2. 28. 12:25

사내 신규 프로젝트중 운영중인 서비스 기반하에 개발해야하는 상황이 생김.

다중 DB 구성은 여러번 해봤지만

이번에 막혔던 부분이 외부 jar 의 mapper 와 xml 파일들을 제대로 찾지 못해 빌드 실패하는 문제 발생

 

아래처럼 외부 jar 를 이용하여 DB 서비스를 호출해야 함

외부 라이브러리에 추가된 기존 운영중인 서비스

 

 

아래는 application.yml

 

 

아래는 cim 과, dr 이라는 이름의 DatabaseConfig

 

 

mapper 와 xml 을 찾지 못했는데

CimDatabaseConfig.java

...

    @Bean(name="sqlSessionFactory")
    @Primary
    public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
        SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSource);
        sessionFactory.setConfigLocation(applicationContext.getResource("classpath:mybatis-config.xml"));
		
        //외부 jar의 xml 파일들이 있는 패키지 경로, classpath 뒤에 *를 붙여야 모든 JAR 파일을 자동으로 포함
        sessionFactory.setMapperLocations(applicationContext.getResources("classpath*:/mybatis/a/cim/db/*.xml"));

        //외부 jar의 Service, Impl, Mapper 파일들이 있는 패키지 경로
        sessionFactory.setTypeAliasesPackage("net.a.cim.db");

        return sessionFactory.getObject();
    }


...


DrDatabaseConfig.java

...

    @Bean(name="drSqlSessionFactory")
    public SqlSessionFactory drSqlSessionFactory(@Qualifier("drDataSource")DataSource drDataSource) throws Exception {
        SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(drDataSource);
        sessionFactory.setConfigLocation(applicationContext.getResource("classpath:mybatis-config.xml"));
        
        //현재 프로젝트의 xml 파일들이 있는 패키지 경로, classpath 뒤에 *를 붙여야 모든 JAR 파일을 자동으로 포함
        sessionFactory.setMapperLocations(applicationContext.getResources("classpath*:/mybatis/b/dr/db/*.xml"));

        //현재 프로젝트의 Service, Impl, Mapper 파일들이 있는 패키지 경로        
        sessionFactory.setTypeAliasesPackage("net.b.dr.db");

        return sessionFactory.getObject();
    }

...

 

위처럼 setTypeAliasesPackage 에 패키지명을 명시해주니 해결

'Develop_Backend > Spring' 카테고리의 다른 글

Spring Profile 설정 - 간단한 서버 환경별 설정  (0) 2020.03.19