通常我們定義查詢,在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?