按筆者 Spring Boot 2 實踐記錄之 MySQL + MyBatis 配置 中的方式,如果想正確運行,需要在 Mapper 類上添加 @Mapper 注解。
但是加入此注解之后,啟動時會出現如下警告:
Skipping MapperFactoryBean with name 'xxxMapper' and 'tk.mybatis.xxx.mapper.xxxMapper' mapperInterface. Bean already defined with the same name! No MyBatis mapper was found in '[tk.mybatis]' package. Please check your configuration.
雖然不影響運行,但是對於追求完美的童鞋而言,卻是小有遺憾。
兩條信息各自對應了一個問題,逐條解決即可。
第一個問題是由 Mapper 注解引起的,將其去掉。但是這樣一來,第二個問題所指出的找不到 mapper 包的問題,就會引起 Mapper bean 找不到的問題。
嗯,在配置中添加 Mapper 掃描的基礎包即可,在配置類上方添加如下注解:
@MapperScan(basePackages = "tk.mybatis.xxx.mapper")
完美解決!