2016-08-02 27 views
2

我在春天對應用程序上下文完全混淆了。如果我使用spring(簡單的spring)創建beans.xml,然後從(例如)main()方法調用應用程序上下文。如何分配spring-context?

ApplicationContext context = new FileSystemXmlApplicationContext 
      ("C:/Users/ZARA/workspace/HelloSpring/src/Beans.xml"); 

所有的作品都不錯。但我不明白,如果我移動上面的目錄或其他目錄中的文件(例如)它會好嗎?

春季-MVC

不存在用於創建和其中i指定一些豆類,對於所有servlet共同上下文每個DispatcherServlet背景下,如何確定呢?在web.xml中? 一般,請解釋一下我這一刻(我在行動閱讀春天,我undesrstand都差不多,但這些棘手的時刻不要在這裏展示

對不起我的英語不好提前

+0

在MVC中,有兩種不同的情況下,應用程序上下文是根應用程序上下文(只有一個),WebApplicationContext的,可以根據創建了多少調度的servlet是多。 Spring將默認從您的webapps WEB-INF文件夾加載名爲「xxx-servlet.xml」的文件,其中xxx是web.xml中的servlet名稱。 – ankidaemon

+0

對於應用程序上下文聲明:如果你沒有明確地在web.xml中通過contextConfigLocation PARAM聲明範圍內的配置文件名,春季將搜索在WEB-INF文件夾中的applicationContext.xml並拋出FileNotFoundException異常,如果找不到這個文件。 – ankidaemon

+0

我應該在web.xml中爲整個應用程序指定基礎應用程序上下文嗎?還有其他的servlet在**** - servlet.xml中?我應該在web.xml中寫入這些配置(對於spring-mvc)? 僅用於合併我的知識庫(: – Alex

回答

1

FileSystemXmlApplicationContext java doc

獨立的XML應用程序上下文,從文件系統或URL中獲取上下文定義文件,將普通路徑解釋爲相對文件系統位置(例如「mydir/myfile.txt」)。對於測試線束以及獨立環境。

這裏的關鍵詞是上下文定義文件,這樣你就可以通過路徑儘可能多的XML文件,因爲你想要的。除此之外,你可以創建一個應用程序上下文,並把它傳遞給新的作爲父:

FileSystemXmlApplicationContext(String[] configLocations, ApplicationContext parent) 

因此,你可以輕鬆地創建上下文的需要層次。

 ApplicationContext parentContext = new FileSystemXmlApplicationContext 
      ("C:/some/path/ParentBeans.xml"); 

     ApplicationContext childContext = new FileSystemXmlApplicationContext 
      (new String[]{"C:/some/path/ChildBeans1.xml", "C:/some/path/ChildBeans2.xml"}, parentContext); 

如果我在其他目錄上的目錄中移動文件高於一切(舉例來說)這將是確定?

只要您的文件路徑正確並且可以訪問 - 沒關係。

+0

感謝您的回答! – Alex