Spring Bootでmybatis-spring-boot-starter
を使ってMyBatisを利用するときには、@MapperScan
は付与しなくていいよ、という話です。
mybatis-spring-boot-starter
は@Mapper
を自動的に読み込む
mybatis-spring-boot-starter
を使ってMyBatisを利用する場合、アプリケーション起動時に@Mapper
が付与されているインターフェースを自動的にスキャンし、Mapperとして登録します。
ですので、SpringでMyBatis(mybatis-spring
)を利用していたときのように、@MapperScan
をわざわざ付与する必要はありません。
@Mapper
を付与していないインタフェース(例. カスタムアノテーションがついたインタフェース)をMapperとして登録したい場合は、@MapperScan
でスキャン対象のベースパッケージを指定してあげましょう。
まとめ
Spring Bootでmybatis-spring-boot-starter
を使ってMyBatisを利用するときには、@MapperScan
は付与しなくていいよ、という話でした。Spring BootでMyBatisを紹介している他の記事を見ると、特に説明もなく@MapperScan
を付与しているものが多くて気になっていたので今回記事にまとめてみました。