Spring配置文件的路徑

http://www.cnblogs.com/vigarbuaa/p/3616947.html
Spring容器最基本的接口就是BeanFactory. BeanFactory負責配置丁鹉、創(chuàng)建妒潭、管理Bean,它有一個子接口ApplicationContext,也稱為Spring上下文揣钦。Spring容器負責管理Bean與Bean之間的信賴關系雳灾。

BeanFactory有很多實現(xiàn)類,通常使用 org.springframework.beans.factory.xml.XmlBeanFactory類冯凹。但對于大部分J2EE應用而言谎亩,推薦使 用ApplicationContext. ApplicationContext是BeanFactory的子接口,其常用實現(xiàn)類是org.springframework.context.support.FileSystemXmlApplicationContext 和org.springframework.context.support.ClassXmlAplicationContext 。 

Springr的配置信息通常采用XML配置文件來設置匈庭,因此夫凸,創(chuàng)建BeanFactory實例時,應該提供XML配置文件作為參數(shù)阱持。夭拌、

下面詳細介紹ApplicationContext的實際運用:

一:ClassPathXmlApplicationContext
1.沒有前綴:默認為項目的classpath下相對路徑
ApplicationContext appCt = new ClassPathXmlApplicationContext("app.spring.xml");

2.前綴classpath:表示的是項目的classpath下相對路徑
ApplicationContext appCt = new ClassPathXmlApplicationContext("classpath:app.spring.xml");

3.使用前綴file 表示的是文件的絕對路徑
ApplicationContext appCt = new ClassPathXmlApplicationContext("file:D:/app.spring.xml");

4.可以同時加載多個文件
String[] xmlCfg = new String[] { "classpath:base.spring.xml","app.spring.xml"};
ApplicationContext appCt = new ClassPathXmlApplicationContext(xmlCfg);

5.使用通配符加載所有符合要求的文件
ApplicationContext appCt = new ClassPathXmlApplicationContext("*.spring.xml");

二:FileSystemXmlApplicationContext
1.默認為項目工作路徑 即項目的根目錄
ApplicationContext appCt2 = new FileSystemXmlApplicationContext("src/main/resources/app.spring.xml");

2.前綴classpath:表示的是項目的classpath下相對路徑
ApplicationContext appCt2 = new FileSystemXmlApplicationContext("classpath:app.spring.xml");

3.使用前綴file 表示的是文件的絕對路徑
ApplicationContext appCt2 = new FileSystemXmlApplicationContext("file:D:/app.spring.xml ");
ApplicationContext appCt2 = new FileSystemXmlApplicationContext("D:/app.spring.xml ");

4.可以同時加載多個文件
String[] xmlCfg = new String[] { "src/main/resources/base.spring.xml","classpath:app.spring.xml"};
ApplicationContext appCt2 = new FileSystemXmlApplicationContext(xmlCfg);

5.使用通配符加載所有符合要求的文件
ApplicationContext appCt2 = new FileSystemXmlApplicationContext("classpath:*.spring.xml");

詳細代碼如下:

Java代碼
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

import aoplog.LogAfterAdvice;
import aoplog.LogBeforeAdvice;

/**

  • @author Michael

*/
public class TestApplicationContext {

/**  
 * @param args  
 */   
public   static   void  main(String[] args) {  

    /**  
     * ClassPathXmlApplicationContext  
     */   
    // 沒有前綴:默認為項目的classpath下相對路徑   
    ApplicationContext appCt = new  ClassPathXmlApplicationContext(  
            "app.spring.xml" );  

    // 前綴classpath:表示的是項目的classpath下相對路徑   
    // ApplicationContext appCt = new ClassPathXmlApplicationContext(   
    // "classpath:app.spring.xml");   

    // 使用前綴file 表示的是文件的絕對路徑   
    // ApplicationContext appCt = new ClassPathXmlApplicationContext(   
    // "file:D:/app.spring.xml");   

    LogBeforeAdvice logBefore = (LogBeforeAdvice) appCt  
            .getBean("logBefore" );  
    System.out.println("ClassPathXmlApplicationContext test:"   
            + logBefore.getClass());  

    // 利用通配符文件加載   
    ApplicationContext appCtXx = new  ClassPathXmlApplicationContext(  
            "*.spring.xml" );  

    // 多文件加載   
    String[] xmlCfg = new  String[] {  "classpath:base.spring.xml" ,  
            "myapp.spring.xml"  };  
    ApplicationContext appCtMore = new  ClassPathXmlApplicationContext(  
            xmlCfg);  

    /*  
     * FileSystemXmlApplicationContext  
     */   

    // 默認為項目工作路徑 即項目的根目錄   
    ApplicationContext appCt2 = new  FileSystemXmlApplicationContext(  
            "src/main/resources/app.spring.xml" );  

    // 前綴classpath:表示的是項目的classpath下相對路徑   
    // ApplicationContext appCt2 = new FileSystemXmlApplicationContext(   
    // "classpath:app.spring.xml");   

    // 使用前綴file 表示的是文件的絕對路徑   
    // ApplicationContext appCt2 = new FileSystemXmlApplicationContext(   
    // "file:D:/app.spring.xml");   

    LogAfterAdvice logAfter = (LogAfterAdvice) appCt2.getBean("logAfter" );  
    System.out.println("FileSystemXmlApplicationContext test:"   
            + logAfter.getClass());  
}  

我出現(xiàn)的問題是ClassPathXmlApplicationContext(new String[] {"a.xml","b.xml"});配置兩個a.xml,b.xml,之后編譯運行衷咽,
然后在一個a.xml里面<import src="b.xml">,然后ClassPathXmlApplicationContext("a.xml")報錯說什么b.xml路徑不對啼止。我就改了
classpath:b.xml就行了再改回去也可以了 - -

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市兵罢,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌滓窍,老刑警劉巖卖词,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異吏夯,居然都是意外死亡此蜈,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門噪生,熙熙樓的掌柜王于貴愁眉苦臉地迎上來裆赵,“玉大人,你說我怎么就攤上這事跺嗽≌绞冢” “怎么了?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵桨嫁,是天一觀的道長植兰。 經(jīng)常有香客問我,道長璃吧,這世上最難降的妖魔是什么楣导? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮畜挨,結果婚禮上筒繁,老公的妹妹穿的比我還像新娘。我一直安慰自己巴元,他們只是感情好毡咏,可當我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著务冕,像睡著了一般血当。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天臊旭,我揣著相機與錄音落恼,去河邊找鬼。 笑死离熏,一個胖子當著我的面吹牛佳谦,可吹牛的內容都是我干的。 我是一名探鬼主播滋戳,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼钻蔑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了奸鸯?” 一聲冷哼從身側響起咪笑,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎娄涩,沒想到半個月后窗怒,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡蓄拣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年扬虚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片球恤。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡辜昵,死狀恐怖,靈堂內的尸體忽然破棺而出咽斧,到底是詐尸還是另有隱情堪置,我是刑警寧澤,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布收厨,位于F島的核電站晋柱,受9級特大地震影響,放射性物質發(fā)生泄漏诵叁。R本人自食惡果不足惜雁竞,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拧额。 院中可真熱鬧碑诉,春花似錦、人聲如沸侥锦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽恭垦。三九已至快毛,卻和暖如春格嗅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背唠帝。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工屯掖, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人襟衰。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓贴铜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親瀑晒。 傳聞我的和親對象是個殘疾皇子绍坝,可洞房花燭夜當晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內容