天天看點

ClassPathXmlApplicationContext和FileSystemXmlApplicationContext差別

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