1. 程式人生 > >關於SpringBoot整合Mybatis整合時遇到的/文件根元素 "beans" 必須匹配 DOCTYPE 根 "null"/問題

關於SpringBoot整合Mybatis整合時遇到的/文件根元素 "beans" 必須匹配 DOCTYPE 根 "null"/問題

這個問題應該是剛學習spring boot的同學經常遇到的,也困惑了我一晚上。

遇到這個問題的原因有很多種,所以解決方式不同,我這裡說下我遇到的情況和解決辦法。

先說我遇到的情況的解決辦法,就是新增下面標紅的一句,把Spring XML配置檔案主動引入,你如果是相同的問題,可以去自己的專案裡試試看。

@ImportResource(value = {"classpath:applicationContext.xml"})
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
public class SpringMybatisApplication {

當然有時間的同學可以繼續往下看。

      我的情況是在Spring Boot和Mybatis整合時,專案程式碼已經開發結束。Junit測試service介面也完全沒問題,就是在執行Application類的時候報這個錯誤,因為我是基於Spring xml配置的專案,所以在專案啟動時必須先載入Spring配置檔案,看了網上教程說Spring的配置檔名稱必須依application開頭的就會被主動載入,我也這樣嘗試過,但是好像並不可以,Spring Boot啟動專案時仍然不會把我的Spring xml配置檔案在專案啟動時載入進去,當然如果我把配置檔名稱改為application.xml的時候雖然該配置檔案會載入,但是就會報我們遇到的這個問題“文件根元素 "beans" 必須匹配 DOCTYPE 根 "null" ,我當時也以為是配置檔案寫的有問題,反覆檢查和刪減,但是就是沒法解決,後來靜下心想了下如果配置檔案有問題的話,那麼單元測試應該沒法通過。所以就把問題定位在了配置檔案沒有載入的地方。@ImportResource:通過locations屬性載入對應的xml配置檔案。原來Spring Boot裡面沒有Spring的配置檔案,我們自己編寫的配置檔案,也不能自動識別;所以我們有配置檔案就要通過註解方式先引入進去。

我是菜鳥一枚~~~

我的專案結構圖如下: