hello world
다중 디비 접속 Annotation으로 다중 디비 구분하기 본문
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
여기 블로그에 상세히 나와있다 참조하기
'WEB > Spring .Spring Boot' 카테고리의 다른 글
bean 우선순위 부여하기 @DependsOn (1) | 2022.01.18 |
---|---|
gitignore로 이미 올라간 파일 지우기 (0) | 2022.01.13 |
세팅 중 참고 사이트 (0) | 2022.01.12 |
spring Mysql 연결 오류 정리 (1) | 2022.01.07 |
spring 프로젝트 초기 인코딩 한글 설정 (0) | 2020.06.05 |
Comments