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) 錯誤