Spring

Spring BootでMyBatisを使うときは@MapperScanは不要

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を付与しているものが多くて気になっていたので今回記事にまとめてみました。

参考リンク

-Spring

© 2024 Reasonable Code