springboot工程掃描依賴Jar包的mapper和xml的解決辦法

1. 如果宿主和被依賴的工程都包含 Swagger.java,整合後會發生衝突,解決辦法就是不重名或者直接刪除被依賴工程裏的文件。

2. 宿主的 Java 進程啓動入口需要加上依賴 jar 包的掃描路徑,MapperScan 也要加上對應的多個 dao 的包路徑:

3. 宿主的 application.properties 文件的 mybatis 的配置的寫法比較特別,需要寫成:

也就是 classpath*:mapper/*.xml,紅色的 star 不能少哦。

總結:

a. SpringBootApplication 負責掃描自己和依賴的包下的對象實例,不然 @Autowired 報錯
b. MapperScan 負責自己和依賴的 Mybatis 的 DAO 接口的註冊
c. application.properties 的 mapperLocations 則是說明所有應用類加載路徑下的 mapper 文件都需要註冊
d. 各被依賴的 jar (springboot)工程負責實例化自己的 mapper xml 實例

小記:

網上 【springboot】如何在自己的springboot項目中引用別的springboot項目jar  的第一條就說要刪除 Application 啥的,其實是不對的,至少我們需要依賴它幫忙加載依賴的 mapper*.xml 文件,否則就會出現 Invalid bound statement (not found) 錯誤

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章