spring boot掃描mapper文件


一個簡單的功能,百度查的都是XX,谷歌萬歲.

因為掃描不到自動生成的mapper就無法注入到service

方案一.@Mapper

如果Mapper文件所在的包和你的配置mapper的項目的pom定義的groupid相同的話.

因為我的mapper是一個模塊,portal一個模塊.

mapper在com.haitian.mapper下

portal的groupid是com.haitian,這樣可以直接掃描到.

但是這樣有兩個需要考慮的地方:

1.mybatis-generator生成的mapper並沒有@mapper

配置文件不行,好像插件可以

https://github.com/mybatis/generator/issues/184

還得折騰一會

2.如果第一個折騰出來了,默認會掃描com.haitian下的所有包來找@Mapper

雖然對運行效率不會有什么影響,啟動就會變慢啊,浪費時間.

所以不推薦

方案二.

mybatis.mapper-locations=com.haitian.mapper/*.xml

不管用,有人說properties管用,我yml和propertis都試了,都不管用

方法三.加載xml文件

<!-- 配置掃描包,加載mapper代理對象 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.haitian.mapper"></property>
</bean>

@SpringBootApplication
@ImportResource(locations = "classpath:spring-dao.xml")
public class PortalApplication {

public static void main(String[] args) {
SpringApplication.run(PortalApplication.class, args);
}
}

可行是可行,不符合spring boot的開發理念,不美麗.

方案四:

@MapperScan("com.haitian.mapper")

一行搞定.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM