다중 datasource 사용시 mybatis mapper interface 사용 질문
- 작성자 :
- 김*환
- 작성일 :
- 2017-03-07 15:03:34
- 조회수 :
- 1,742
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
우선 매번 성실한 답변 감사드립니다.
다중 데이터소스 환경에서 mybatis 사용시 mapper interface 방식을 쓰고자 합니다.
같은 문제로 지난번에 질의를 드렸는데 egovframework.rte.psl.dataaccess.mapper.MapperConfigurer 를 사용하면 된다는 답변을 받아서 적용해봤습니만 다중 datasource 환경을 구축하려다 보니 해당 방법으로는 Mapper bean 이 연결되지 않는 오류가 발생하였습니다.
MapperConfigurer를 확인해 봤는데 특별한 내용은 없어 보여, 다른 방식으로 문제를 해결하였는데
다음 구현내용으로 진행 하여도 호환성인증에 문제가 없는지 알고 싶습니다.
감사합니다.
@Configuration
@EnableTransactionManagement
@MapperScan(basePackages = { "go.kr.abc.def.mapper.ora1.*" } ,sqlSessionFactoryRef = "sqlSessionFactoryBeanOra1")
public class MybatisOra1Config {
@Resource(name = "dsOra1")
DataSource dsOra1;
@Bean(name="sqlSessionFactoryBeanOra1")
public SqlSessionFactoryBean sqlSessionOra(DataSource dsOra1) throws IOException{
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
PathMatchingResourcePatternResolver pmrpr = new PathMatchingResourcePatternResolver();
sqlSessionFactoryBean.setDataSource(dsOra1);
sqlSessionFactoryBean.setConfigLocation(pmrpr.getResource("classpath:/egovframework/sqlmap/sql-mapper-config.xml"));
sqlSessionFactoryBean.setMapperLocations(pmrpr.getResources("classpath:/egovframework/sqlmap/mappers/ora1/*/*.xml"));
return sqlSessionFactoryBean;
}
@Bean(name = "txMybatisOra1")
public PlatformTransactionManager transactionManager() {
DataSourceTransactionManager transactionManager = new DataSourceTransactionManager(dsOra1);
return transactionManager;
}
}
*다중 트랜잭션 처리를 위하여 MybatisOra1Config , MybatisOra2Config 와 같이 datasource 각각의 mybatisConfig를 생성하였습니다.
다중 데이터소스 환경에서 mybatis 사용시 mapper interface 방식을 쓰고자 합니다.
같은 문제로 지난번에 질의를 드렸는데 egovframework.rte.psl.dataaccess.mapper.MapperConfigurer 를 사용하면 된다는 답변을 받아서 적용해봤습니만 다중 datasource 환경을 구축하려다 보니 해당 방법으로는 Mapper bean 이 연결되지 않는 오류가 발생하였습니다.
MapperConfigurer를 확인해 봤는데 특별한 내용은 없어 보여, 다른 방식으로 문제를 해결하였는데
다음 구현내용으로 진행 하여도 호환성인증에 문제가 없는지 알고 싶습니다.
감사합니다.
@Configuration
@EnableTransactionManagement
@MapperScan(basePackages = { "go.kr.abc.def.mapper.ora1.*" } ,sqlSessionFactoryRef = "sqlSessionFactoryBeanOra1")
public class MybatisOra1Config {
@Resource(name = "dsOra1")
DataSource dsOra1;
@Bean(name="sqlSessionFactoryBeanOra1")
public SqlSessionFactoryBean sqlSessionOra(DataSource dsOra1) throws IOException{
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
PathMatchingResourcePatternResolver pmrpr = new PathMatchingResourcePatternResolver();
sqlSessionFactoryBean.setDataSource(dsOra1);
sqlSessionFactoryBean.setConfigLocation(pmrpr.getResource("classpath:/egovframework/sqlmap/sql-mapper-config.xml"));
sqlSessionFactoryBean.setMapperLocations(pmrpr.getResources("classpath:/egovframework/sqlmap/mappers/ora1/*/*.xml"));
return sqlSessionFactoryBean;
}
@Bean(name = "txMybatisOra1")
public PlatformTransactionManager transactionManager() {
DataSourceTransactionManager transactionManager = new DataSourceTransactionManager(dsOra1);
return transactionManager;
}
}
*다중 트랜잭션 처리를 위하여 MybatisOra1Config , MybatisOra2Config 와 같이 datasource 각각의 mybatisConfig를 생성하였습니다.
A
안녕하세요.
표준프레임워크 센터 입니다.
답변이 늦어서 죄송합니다.
다중 데이터소스 환경에서 mybatis 사용시 mapper interface 방식을 구현시
센터에서 제공하는
Mapper interface 를 스캔 하는
egovframework.rte.psl.dataaccess.mapper.MapperConfigurer 해당 클레스를 확장 가능합니다.
확장 하여 다중 mybatis의 mapper interface 구현 하시면 됩니다.
감사합니다.
표준프레임워크 센터 입니다.
답변이 늦어서 죄송합니다.
다중 데이터소스 환경에서 mybatis 사용시 mapper interface 방식을 구현시
센터에서 제공하는
Mapper interface 를 스캔 하는
egovframework.rte.psl.dataaccess.mapper.MapperConfigurer 해당 클레스를 확장 가능합니다.
확장 하여 다중 mybatis의 mapper interface 구현 하시면 됩니다.
감사합니다.