Spring中使用classpath載入配置檔案淺析
這時使用
ApplicationContext context = new
ClassPathXmlApplicationContext("classpath*:conf/**/*application-context.xml");來建立ApplicationContext物件的話,Spring首先會通過路徑中的非萬用字元部分即conf,先確定conf的路徑,由於使用了classpaht*字首,因此bin目錄下的conf和jar包裡的conf都會被載入,同時由於使用了/**/的方式,表明要載入conf目錄下包括各級子目錄中的所有配置檔案,因此bin/conf/application-context.xml
bin/conf/admin/admin-application-context.xml以及jar包中的
conf/application-context.xml和
conf/admin/admin-application-context.xml都會被載入,Spring啟動時的輸出顯示為:
Loading XML bean definitions from file
[D:\myworkspace\spring-study\bin\conf\admin\admin-application-context.xml]
Loading XML bean definitions from file
[D:\myworkspace\spring-study\bin\conf\application-context.xml]
Loading XML bean definitions from URL
[jar:file:/D:/myworkspace/conf1.jar!/conf/admin/admin-application-context.xml]
Loading XML bean definitions from URL
[jar:file:/D:/myworkspace/conf1.jar!/conf/application-context.xml]
特別注意:
如果工程目錄如圖所示: