조건에 따른 데이터소스 선택 방법
- 작성자 :
- 홍*훈
- 작성일 :
- 2024-03-18 18:18:18
- 조회수 :
- 188
- 구분 :
- 개발환경 / 3.8
- 진행상태 :
- 완료
Q
안녕하세요.
저희 회사에는 똑같은 기간(legacy) 시스템이 8개의 지사 서버에 각각 설치되어 있습니다.
서울/수원/부산/인천/대전/구미/청주/제주 이런 식으로 각 지사에 별도의 물리적인 DBMS 가 있습니다.
지금 개발 중인 웹 시스템(egov 3.8) 에서 이 것을 if 등으로 datasource를 선택해서 연결하는 방법을 문의드립니다.
예를 들어 고객사A는 서울에서 처리하니 서울DB를 보여주고, 고객사B는 구미에서 처리하니 구미DB를 보여주는 것 입니다.
1. context-datasource.xml 는 당연히 8개의 datasource 를 지정해야 할 것으로 생각합니다.
예) datasource1 - 8
2. context-mapper.xml 에도 8개의 sqlSession 이 있어야 할 것으로 생각합니다.
예) sqlSession1 - 8
하지만 basePackage 별로 지정하자니 내용이 똑같은 Service, ServiceImpl, Mapper, sqlmap(xml) 를 8개나 만들어야 합니다.
쿼리 하나 수정해도 8개를 고쳐야 하니 골치가 아픕니다.
3. 저희는 ***Controller 에서 @Controller, @Resource(name = "***Service"), @RequestMapping을 사용하고,
***Service 는 interface 로 만들고,
***ServiceImpl 은 @Service("***Service"), @Resource(name="***Mapper") 을 사용하고,
***Mapper는 @Mapper("***Mapper") 을 사용하고,
sqlmap(xml)은 <mapper namespace="egovframework.***Mapper">, <select>, <insert> 등을 사용합니다.
다시 말씀드리자면 모든 기간 시스템의 DB 구조가 똑같기 때문에 하나의 Service, ServiceImpl, Mapper, sqlmap(xml) 파일로
등록된 DBMS(datasource) 중 하나를 선택하여 조회하기를 희망합니다.
감사합니다.
저희 회사에는 똑같은 기간(legacy) 시스템이 8개의 지사 서버에 각각 설치되어 있습니다.
서울/수원/부산/인천/대전/구미/청주/제주 이런 식으로 각 지사에 별도의 물리적인 DBMS 가 있습니다.
지금 개발 중인 웹 시스템(egov 3.8) 에서 이 것을 if 등으로 datasource를 선택해서 연결하는 방법을 문의드립니다.
예를 들어 고객사A는 서울에서 처리하니 서울DB를 보여주고, 고객사B는 구미에서 처리하니 구미DB를 보여주는 것 입니다.
1. context-datasource.xml 는 당연히 8개의 datasource 를 지정해야 할 것으로 생각합니다.
예) datasource1 - 8
2. context-mapper.xml 에도 8개의 sqlSession 이 있어야 할 것으로 생각합니다.
예) sqlSession1 - 8
하지만 basePackage 별로 지정하자니 내용이 똑같은 Service, ServiceImpl, Mapper, sqlmap(xml) 를 8개나 만들어야 합니다.
쿼리 하나 수정해도 8개를 고쳐야 하니 골치가 아픕니다.
3. 저희는 ***Controller 에서 @Controller, @Resource(name = "***Service"), @RequestMapping을 사용하고,
***Service 는 interface 로 만들고,
***ServiceImpl 은 @Service("***Service"), @Resource(name="***Mapper") 을 사용하고,
***Mapper는 @Mapper("***Mapper") 을 사용하고,
sqlmap(xml)은 <mapper namespace="egovframework.***Mapper">, <select>, <insert> 등을 사용합니다.
다시 말씀드리자면 모든 기간 시스템의 DB 구조가 똑같기 때문에 하나의 Service, ServiceImpl, Mapper, sqlmap(xml) 파일로
등록된 DBMS(datasource) 중 하나를 선택하여 조회하기를 희망합니다.
감사합니다.
환경정보
-
- OS 정보 : CentOS Stream 8
- 표준프레임워크 버전 : 3.8
- JDK(JRE) 정보 : openjdk 1.8
- WAS 정보 : Tomcat 8
- DB 정보 : MariaDB 10.2
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크센터입니다.
사용하시는 환경이나 요구사항 등을 세부적으로 이해하기는 어려우나
물리적인 다수의 DB에 동일한 스키마 구조를 갖는 경우에서
동적으로 다수의 Service 및 Mapper 빈을 선택하도록 하는 것은
센터에서 별도 가이드 하는 사항은 없습니다.
다만, 기술적으로 가능 하더라도
검토되지 않은 다양한 예외가 발생할 수도 있는 만큼
서비스의 안정성을 보장하기 어려울 것으로 보입니다.
요구사항을 기반으로 다양한 관점에서
접근 및 검토가 필요할 것으로 보입니다.
감사합니다.
표준프레임워크센터입니다.
사용하시는 환경이나 요구사항 등을 세부적으로 이해하기는 어려우나
물리적인 다수의 DB에 동일한 스키마 구조를 갖는 경우에서
동적으로 다수의 Service 및 Mapper 빈을 선택하도록 하는 것은
센터에서 별도 가이드 하는 사항은 없습니다.
다만, 기술적으로 가능 하더라도
검토되지 않은 다양한 예외가 발생할 수도 있는 만큼
서비스의 안정성을 보장하기 어려울 것으로 보입니다.
요구사항을 기반으로 다양한 관점에서
접근 및 검토가 필요할 것으로 보입니다.
감사합니다.