'Example'에 해당되는 글 1건

  1. 2015.02.05 MyBatis 에서 Mapper auto injection 하기 (1)
Mapper interface 를 패키지 하나에 전부 몰아주고

basePackage 속성의 값을 패키지로 주면 되긴 하지만

업무별로 Controller, Service, Repository, Mapper 를

한 패키지에 몰아서 프로젝트를 구성 할 경우

basePackage 를 상위 패키지로 주면 어떤 interface 가 mapper 인지 알 수 없기 때문에

basePackage 속성만으론 불가능해진다

Mapper 를 auto injection 받기 위해 이것저것 해보다가

MapperScannerConfigurer 를 까보니 markerInterface 라는 프로퍼티와

annotationClass 라는 프로퍼티가 보여서 이것저것 해봤다

markerInterface 를 사용하는 방법은 이것저것 해보다가 실패했고

annotationClass 로 하는 방법만 성공했다



MyBatis 설정하는 xml 파일에다가 아래를 추가


비어있는 어노테이션 자바파일 추가


그러면 이제 @Service 에서 mapper 에 @Autowired 를 걸어서 사용이 가능하다


사용 예


TestMapper.java


TestServiceImpl.java


'[Java] > [MyBatis]' 카테고리의 다른 글

MyBatis 에서 Mapper auto injection 하기  (1) 2015.02.05
Posted by FeliZ_하늘..

댓글을 달아 주세요

  1. FeliZ_하늘.. 2015.06.21 23:26 신고  댓글주소  수정/삭제  댓글쓰기

    web.xml
    <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    pom.xml
    <dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjrt</artifactId>
    <version>1.8.4</version>
    </dependency>

    <dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.8.4</version>
    </dependency>

    두가지 없으면 mapper 를 autowired 하다가 각종 exception 을 보게 됨