一篇文章讓你弄懂到底什麼是classpath

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-INFWEB-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