2016-01-28 33 views
0

通常我們定義查詢,在XML文件中,我們的MyBatis的XML配置的mappers部分看起來是這樣的:爲什麼MyBatis XML配置中這個不正確的「包裝」標籤有效?

<mappers> 
    <mapper resource="mappers/example1.xml"/> 
    <mapper resource="mappers/example2.xml"/> 
</mappers> 

,一切都剛剛好。

現在貢獻者加入了一些地圖製作的Java類,我們有其中兩個XML文件和Java軟件包的mappers中所示的混合配置:

<mappers> 
    <mapper resource="mappers/example1.xml"/> 
    <mapper resource="mappers/example2.xml"/> 
    <package name="it.example.mappers1" /> 
    <package name="it.example.mappers2" /> 
</mappers> 

我看到的文檔類型定義http://ibatis.apache.org/dtd/ibatis-3-config.dtd不包括package作爲mappers正確的內容,所以我對日食告訴,這給了我這個錯誤:

The content of element type "mappers" must match "(mapper)+"

然而,一切仍然正常工作當我運行應用程序。在另一方面,當我試圖刪除不正確的package元素,MyBatis的不知道在哪裏可以找到映射器,我得到這個運行時錯誤:

org.apache.ibatis.binding.BindingException: Type interface it.example.mappers1.MyMapper is not known to the MapperRegistry

因此,我們有一個錯誤的配置,工程和必要。爲什麼?我是否指定了錯誤的DTD?

回答

相關問題