MyBatisでorg.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

Spring Boot + MyBatisを使っていると、掲題の例外が発生することがよくあります。(私だけ?)
発生した時の対策をちょっとまとめてみたいと思います。

対策

  • MyBatisの設定クラス(@Configuration)に@MapperScanがついているか
  • @MapperScanに設定したパッケージ名は正しいか
  • Mapperクラスに@Mapperがついているか
  • XMLファイルが配置されているディレクトリ(もしくはパッケージ)は正しいか
    • たとえば、「xxx/yyy/zzz」なんてディレクトリにXMLファイルを配置したつもりが、「xxx.yyy.zzz」に配置したとか。

自分の場合、一番最後のやつによく当たります。

IntellJでパッケージ作っているのですが、操作ミスったりしてるのか、「xxx.yyy.zzz」なんてディレクトリになっちゃってます。
Finderでディレクトリ構成を確認して気付くというパターン。