ClassPathXmlApplicationContext
預設檔案路徑是src下那一級
classpath:和classpath*:的差別:
classpath: 隻能加載一個配置檔案,如果配置了多個,則隻加載第一個
classpath*: 可以加載多個配置檔案,如果有多個配置檔案,就用這個
FileSystemXmlApplicationContext
這個類,預設擷取的是項目路徑,預設檔案路徑是項目名下一級,與src同級。
如果前邊加了file:則說明後邊的路徑就要寫全路徑了,就是絕對路徑
file:D:/workspace/applicationContext.xml
通過在spring加載的時候直接加載properties檔案
<context:property-placeholder location="file:D://property/dinpay.ogg.properties" />
System.out.println(System.getProperty("user.dir"));
Linux和Windows系統識别不一緻
如加載配置檔案有差別
private static AbstractApplicationContext appContext = null;
private static final String XML_EXPRESSION = "classpath*:applicationContext*.xml";
static {
// 後續來讀取指令中的conf 例如 java -Dconf=conf/*.xml -classpath .:lib/*
if (System.getProperty("conf") != null) {
appContext = new FileSystemXmlApplicationContext(System.getProperty("conf").concat("/applicationContext-sync.xml"));
} else {
appContext = new ClassPathXmlApplicationContext(XML_EXPRESSION);
}
}
轉載于:https://www.cnblogs.com/atomicbomb/p/6743091.html