問題:新建Dynamic Web Project時修改了default output folder,這時候在web.xml中配置DispatcherServlet的時候,如果使用
<param-value>classpath:springmvc.xml</param-value>
谦趣,系統(tǒng)啟動時將提示springmvc.xml文件找不到的錯誤跨新,當配置成
<param-value>classpath*:springmvc.xml</param-value>
時,能找到springmvc.xml文件腺占。原因是:
概念解釋:
classpath : 即項目中WEB-INF下面的classes目錄;
應用:
【01】 src路徑下的文件在編譯后會放到WEB-INF/classes路徑下。默認的classpath是在這里万俗。直接放到WEB-INF下的話湾笛,是不在classpath下的。用ClassPathXmlApplicationContext當然獲取不到的闰歪。
【02】 如果單元測試的話嚎研,可以在啟動或者運行的選項里指定classpath的路徑的。用maven構(gòu)建項目時候resource目錄就是默認的classpath
【03】 classPath即為java文件編譯之后的class文件的編譯目錄一般為web-inf/classes库倘,src下的xml在編譯時也會復制到classPath下
(1)ApplicationContext ctx = new ClassPathXmlApplicationContext("xxxx.xml"); //讀取classPath下的spring.xml配置文件
(2)ApplicationContext ctx = new FileSystemXmlApplicationContext("WebRoot/WEB-INF/xxxx.xml"); //讀取WEB-INF 下的spring.xml文件
區(qū)別:
classpath 和 classpath* 區(qū)別:
classpath:只會到你的class路徑中查找找文件;
classpath*:不僅包含class路徑临扮,還包括jar文件中(class路徑)進行查找.