hello world

다중 디비 접속 Annotation으로 다중 디비 구분하기 본문

WEB/Spring .Spring Boot

다중 디비 접속 Annotation으로 다중 디비 구분하기

sohyun_92 2022. 1. 10. 14:22
728x90

스프링에서 mysql 디비서버1 과 oracle 디비서버2에 접속할수있도록 해야할때

어노테이션을 활용하여 디비접속을 구분할 수 있다.

 

1. 아래 인터페이스를 만들어 OracleMapper 어노테이션을 생성

package com.base.component;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.springframework.stereotype.Component;

@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface OracleMapper {
String value() default "";
}

 

 

2.database-context.xml ( 데이터베이스 커넥션 관리하는 xml) 에서 아래 추가

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 
   	<property name="basePackage" value="기본 class 경로(ex : com.base)" /> 
   	<property name="annotationClass" value="OracleMapper 클래스 경로(ex : com.base.component.OracleMapper)" /> 
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactoryMaster" />
</bean>

 

3.mapper에서 생성한 어노테이션 사용

@OracleMapper
public interface BaseMapper {
	BaseDto baseServiceTest();
}

 

 

위에서 생성한 oraclemapper, mysqlmapper 어노테이션들을 전혀 인식 못하는 오류가 있었는데 

<mybatis-spring:scan base-package="com.base" /> 전에 설정했던 이부분 때문이었다. 지워주니까 됨... 

 

 

 

https://dev-gura.tistory.com/18 

 

Spring Mybatis 멀티 database 연동 다중, 복수 데이터베이스 연동 oracle, mysql

Spring Mybatis 멀티 database 연동 다중, 복수 데이터베이스 연동 oracle, mysql Spring Mybatis의 Mapper interface를 사용하는 환경에서 복수의 database 설정을 하는 방법을 알아보겠습니다. ibatis 환경에서..

dev-gura.tistory.com

여기 블로그에 상세히 나와있다 참조하기

Comments