- classpath是什麼:
只知道把配置文件如:mybatis.xml、spring-web.xml、applicationContext.xml等放到src目錄(就是存放代碼.java文件的目錄),而後使用「classpath:xxx.xml」來讀取,都放到src目錄準沒錯,那麼到底classpath到底指的什麼位置呢 ?
- src路徑下的文件在編譯後會放到WEB-INF/classes路徑下吧。默認的classpath是在這裏。直接放到WEB-INF下的話,是不在classpath下的。用ClassPathXmlApplicationContext固然獲取不到。若是單元測試的話,能夠在啓動或者運行的選項裏指定classpath的路徑的。
- 用maven構建項目時候resource目錄就是默認的classpath
classPath即爲java文件編譯以後的class文件的編譯目錄通常爲web-info/classes,src下的xml在編譯時也會複製到classPath下
ApplicationContext ctx = new ClassPathXmlApplicationContext("xxxx.xml"); //讀取classPath下的spring.xml配置文件
ApplicationContext ctx = new FileSystemXmlApplicationContext("WebRoot/WEB-INF/xxxx.xml"); //讀取WEB-INF 下的spring.xml文件。
- web.xml 配置中classpath: 與classpath*:的區別
- classpath:只會到你的class路徑中查找找文件;
- classpath*:不只包含class路徑,還包括jar文件中(class路徑)進行查找.
- 用classpath*:須要遍歷全部的classpath,因此加載速度是很慢的,所以,在規劃的時候,應該儘量規劃好資源文件所在的路徑,儘可能避免使用 classpath*
4.try-with-resources java