본문 바로가기

dev/java(egov)

egov 4.1 spring boot multi db

반응형

이전 작성 된 egov 4.1 글로 게시판은 완성이 되었습니다.

프로젝트를 가끔 하다 보면 multi db 사용이 필요한 경우가 있어 mybatis, ibatis를 이용하여 multi db 연결을 해보도록 하겠습니다.

 

아래 글을 따라 하면 db 연결이 되고 게시판 조회 되는 걸 확인하셨을 겁니다.

2024.02.07 - [dev/egov] - spring boot 시작 egov 4.1

 

spring boot 시작 egov 4.1

백수 될때마다 사이트를 처음부터 만들어 보고 있습니다. 프로젝트가 끝날때마다 새롭게 익힌 기능도 구현해 보기 위서도 있습니다. 이번에 egov 버전을 확인해 보니 최신버전인 4.1로 시작해 보

st-d.tistory.com

2024.02.08 - [db/oracle] - egov 4.1 oracle 연결

 

egov 4.1 oracle 연결

2024.02.07 - [dev/egov] - spring boot 시작 egov 4.1 spring boot 시작 egov 4.1 백수 될때마다 사이트를 처음부터 만들어 보고 있습니다. 프로젝트가 끝날때마다 새롭게 익힌 기능도 구현해 보기 위서도 있습니

st-d.tistory.com

2024.02.11 - [dev/egov] - egov 4.1 db application.yml 설정

 

 

수정할 곳만 딱 지정해서 작성을 하겠습니다.

메인 db는 mybatis를 이용하도록 하고 서브 db를 ibatis로 이용하도록 처리하였습니다.

  • mybatis : dataSource
  • ibatis : dataSource2
1. EgovConfigSqlmap.java
  • 수정 부분 dataSource >> dataSource2
@Bean
public SqlMapClientFactoryBean sqlMapClient(@Qualifier("dataSource2") DataSource dataSource) {
    PathMatchingResourcePatternResolver pmrpr = new PathMatchingResourcePatternResolver();
    SqlMapClientFactoryBean sqlMapClientFactoryBean = new SqlMapClientFactoryBean();
    sqlMapClientFactoryBean.setDataSource(dataSource);
    sqlMapClientFactoryBean.setConfigLocation(pmrpr.getResource("classpath:/egovframework/sqlmap/example/sql-map-config.xml"));
    return sqlMapClientFactoryBean;
}

 

2. EgovConfigTransaction.java
  • 수정 부분 dataSource >> dataSource2
@Bean(name="txManager")
public DataSourceTransactionManager txManager(@Qualifier("dataSource2") DataSource dataSource) {
    DataSourceTransactionManager dataSourceTransactionManager = new DataSourceTransactionManager();
    dataSourceTransactionManager.setDataSource(dataSource);
    return dataSourceTransactionManager;
}

 

3. EgovSampleService.java
  • EgovSampleService.java 파일을 복사하여 EgovSampleService2.java을 생성합니다.
  • 클래스 명만 변경되고 모두 똑같습니다.
4. EgovSampleServiceImpl.java
  • EgovSampleServiceImpl 소스를 복사하여 EgovSampleServiceImpl2를 생성합니다.
  • 생성 후 아래와 같이 수정합니다.
@Service("sampleService")
public class EgovSampleServiceImpl extends EgovAbstractServiceImpl implements EgovSampleService {

	private static final Logger LOGGER = LoggerFactory.getLogger(EgovSampleServiceImpl.class);

	// TODO mybatis 사용
	@Resource(name="sampleMapper")
	private SampleMapper sampleDAO;

	/** ID Generation */
	@Resource(name = "egovIdGnrService")
	private EgovIdGnrService egovIdGnrService;
    
////////////////////////// 아래부터는 sampleService2.java 파일 ////////////////

// 기존 import를 수정해 줍니다.
import egovframework.example.sample.service.EgovSampleService2;

@Service("sampleService2")
public class EgovSampleServiceImpl2 extends EgovAbstractServiceImpl implements EgovSampleService2 {

	private static final Logger LOGGER = LoggerFactory.getLogger(EgovSampleServiceImpl2.class);

	/** SampleDAO */
	// TODO ibatis 사용
	@Resource(name = "sampleDAO")
	private SampleDAO sampleDAO;

	/** ID Generation */
	@Resource(name = "egovIdGnrService")
	private EgovIdGnrService egovIdGnrService;

 

5. EgovSampleController.java
@Controller
public class EgovSampleController {

	private static final Logger _LOG = LoggerFactory.getLogger(EgovSampleController.class);

	/** EgovSampleService */
	@Resource(name = "sampleService")
	private EgovSampleService sampleService;

	/** EgovPropertyService */
	@Resource(name = "propertiesService")
	protected EgovPropertyService propertiesService;

    
///////////// 아래부터는 EgovSampleController2.java 파일 //////////////
    
// 기존 import를 수정해 줍니다.
import egovframework.example.sample.service.EgovSampleService2;

@Controller
@RequestMapping("/a")
public class EgovSampleController2 {

	/** EgovSampleService */
	@Resource(name = "sampleService2")
	private EgovSampleService2 sampleService;

	/** EgovPropertyService */
	@Resource(name = "propertiesService")
	protected EgovPropertyService propertiesService;

 

게시판 조회 화면

테스트 db2개에 같은 테이블을 만들어 놓고 테스트하시면 아래와 같이 2개의 다른 게시판 조회 화면을 확인하실 수 있을 겁니다.

 

 

반응형

'dev > java(egov)' 카테고리의 다른 글

decorators.xml 설정  (0) 2024.02.14
egov 4.1 spring boot sitemesh 설정  (0) 2024.02.13
egov 4.1 db application.yml 설정  (0) 2024.02.11
spring boot 시작 egov 4.1  (0) 2024.02.07
System.getProperty 톰캣 설정  (0) 2023.11.16