MapperConfigurer 이 mapper annotaion을 감지하지 못합니다
- 작성자 :
- 김*규
- 작성일 :
- 2014-09-30 16:49:50
- 조회수 :
- 550
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
현재 패키지 구조가
common.xxx.xxx.mapper
와 common.xxx.mapper로 나뉘어 있습니다.
context-sqlMap.xml 내에서
SqlSessionFactoryBean 을 설정하고 그 다음
전자정부프레임워크에서 제공하는 MapperConfigurer 로
mapper파일들의 위치를 아래와 같이 선언해서 쓰고 있었습니다.
<property name="basePackage" value="*.**.mapper" />
하나의 프로젝트일때는 문제가 없었으나 공통으로 사용될 패키지들을 별도의 프로젝트로 묶어서 프로젝트를 서로 분리하여 공통 프로젝트를 업무 프로젝트에서 jar로 묶어가져가서 쓰도록 pom설정을 해두었습니다.
그랬더니 일부 mapper파일이 읽혀지지 않아 bean객체 생성이 실패하는 에러가 발생합니다.
공통쪽에 있는 mapper의 패키지 구조는 common.xxx.mapper
업무쪽에 있는 mapper 패키지 구조는 common.xxx.xxx.mapper 입니다.
둘다 mapper annotaion을 선언하고 있는 mapper interface인데 정상적으로 mapper를 scan하게 할 수 있는 방안이 없을지요
common.xxx.xxx.mapper
와 common.xxx.mapper로 나뉘어 있습니다.
context-sqlMap.xml 내에서
SqlSessionFactoryBean 을 설정하고 그 다음
전자정부프레임워크에서 제공하는 MapperConfigurer 로
mapper파일들의 위치를 아래와 같이 선언해서 쓰고 있었습니다.
<property name="basePackage" value="*.**.mapper" />
하나의 프로젝트일때는 문제가 없었으나 공통으로 사용될 패키지들을 별도의 프로젝트로 묶어서 프로젝트를 서로 분리하여 공통 프로젝트를 업무 프로젝트에서 jar로 묶어가져가서 쓰도록 pom설정을 해두었습니다.
그랬더니 일부 mapper파일이 읽혀지지 않아 bean객체 생성이 실패하는 에러가 발생합니다.
공통쪽에 있는 mapper의 패키지 구조는 common.xxx.mapper
업무쪽에 있는 mapper 패키지 구조는 common.xxx.xxx.mapper 입니다.
둘다 mapper annotaion을 선언하고 있는 mapper interface인데 정상적으로 mapper를 scan하게 할 수 있는 방안이 없을지요
A
안녕하세요. 김민규님.
basePackage 부분은 Spring resource 지정방식에 따라 다음과 같이 변경해 보시면 되실 것 같습니다.
"classpath*:**.mapper"
또는 "common.xxx.mapper,common.xxx.xxx.mapper" 이렇게 2개를 지정하는 방식이 내부적으로 보다 효율적으로 처리됩니다.
(첫번째 경우는 *로 시작되는 처리의 경우 현재 classloader만을 호출될 수 있기 때문에 두번째 방식을 우선 적용해 보십시오)
그럼, 즐거운 하루되십시오.
감사합니다.
basePackage 부분은 Spring resource 지정방식에 따라 다음과 같이 변경해 보시면 되실 것 같습니다.
"classpath*:**.mapper"
또는 "common.xxx.mapper,common.xxx.xxx.mapper" 이렇게 2개를 지정하는 방식이 내부적으로 보다 효율적으로 처리됩니다.
(첫번째 경우는 *로 시작되는 처리의 경우 현재 classloader만을 호출될 수 있기 때문에 두번째 방식을 우선 적용해 보십시오)
그럼, 즐거운 하루되십시오.
감사합니다.