classpath其實就是一個路徑而已,咱們常常在spring的配置文件中這樣寫:java
<property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml" />
這樣配置完以後spring就知道mybatis配置文件所在的地方。web
那麼?這個classpath指向的地方究竟是哪裏呢?spring
classpath指向的就是打war包以後的classes的位置,而classes文件夾下就是咱們原項目的java文件和resources文件夾裏面的內容。mybatis
因此上面的代碼的意思就是在編譯後的classes文件中找mybatis/SqlMapConfig.xml文件。app
在編譯打包後的項目中,根目錄是META-INF
和WEB-INF
。這個時候,咱們能夠看到classes這個文件夾,它就是咱們要找的classpath。svg
classpath:mybatis/SqlMapConfig.xml
中,classpath就是指WEB-INF/classes/
這個目錄的路徑。須要聲明的一點是,使用classpath:
這種前綴,就只能表明一個文件。spa
而另外一種寫法,classpath*:**/mapper/mapping/*Mapper.xml
,使用classpath*:
這種前綴,則能夠表明多個匹配的文件;**/mapper/mapping/*Mapper.xml
,雙星號**
表示在任意目錄下,也就是說在WEB-INF/classes/
下任意層的目錄,只要符合後面的文件路徑,都會被做爲資源文件找到。code