2014-09-01 39 views
1

我很好奇這件事。在Spring MVC Project中聲明瞭「classpath *」的位置?

這個「classpath *」聲明在哪裏?

關於在web.xml中的描述很常見。

<servlet> 
    <servlet-name>action</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value> 
       classpath*:egovframework/springmvc/context-*.xml 
      </param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 

我以爲這個框架首先讀取web.xml。但是它怎麼能知道這個關鍵字「classpath *:」?

感謝您前面回答事先:d

回答

3

我相信spring docs描述類路徑的資源以及:

使用ClassPathResource

此類表示應該從 獲得的資源類路徑。這使用線程上下文類加載器,給定的 類加載器或給定的類來加載資源。作爲java.io.File的,如果 類路徑的資源存在於文件系統

此資源實現支持的分辨率,而不是駐留在一個罐子裏,並沒有被擴大 (由servlet引擎 classpath下的資源,或任何環境)到 文件系統。爲了解決這個問題,各種資源實現 總是支持解析爲java.net.URL。

爲ClassPathResource是通過明確使用 ClassPathResource構造Java代碼中創建的,但是當你調用帶一個字符串參數,它是 旨在代表一個路徑的API函數隱式地創建 。對於後一種情況下,JavaBeans PropertyEditor會識別特殊前綴類路徑:在 字符串路徑上,並且在這種情況下

+0

明白了。我明白,PropertyEditor接口控制這個關鍵字。我需要研究它。感謝:D – 2014-09-01 02:32:39

0

給你點顏色創建爲ClassPathResource,servlet容器將讀取的web.xml 。這將加載Spring Dispatcher Servlet並將這些參數傳遞給它們。 Spring可以讀取和解釋字符串類路徑*:egovframework/springmvc/context - *。xml以便能夠找到合適的上下文文件。