2013-01-03 82 views
1

我對Spring框架有點熟悉,但是從項目架構的角度來看,我仍然有很多關於Spring使用的問題。現在我正在設置Spring 3和一個Maven Web應用程序,並且願意嘗試所有的花哨的組件掃描和自動裝配功能,但這是我感到困惑的地方。Spring 3應用上下文加載

我想將項目分解成子模塊。在某些時候,這些子模塊可能包含something-context.xmlclasspath*:resource/META-INF,例如,當我想要在單獨的模塊中定義一個datsource相關的東西時。所以這很好,讓我們從所有jar的類路徑中加載上下文文件。

但是,這裏就是模糊的地方 - 比如說我正在使用組件掃描。我顯然使用spring DispatcherServlet,它需要加載一個servlet上下文,然後在web.xml contextConfigLocation中指定一個全局應用程序上下文參數。

所以現在servlet上下文配置有com.mycom.project.controllers並在全球contextConfigLocation加載情況下啓用組件掃描功能具有裝載組件掃描功能的包com.mycom.project還搜索classpath*:META-INF/spring/*-context.xml的上下文。

所以我的問題是 - 這個負載控制器的兩次給定的組件掃描是用於爲com.mycom.project.controllerscom.mycom.project?或者是全部加載到一個巨大的容器中,DispatcherServlet或全局聲明的contextConfigLocation參數是一種訪問問題?如DispatcherServlet將只達到servlet-context.xml中定義的內容,但將無法使用其他任何內容?

如果我的假設錯了,我可以就如何管理多模塊項目問題提出建議嗎?

謝謝。

回答

2

是的,你可能會遇到麻煩。請參閱此鏈接瞭解如何解決您的問題。

@Service are constructed twice

創建模塊,當你進入的方式似乎有效的給我。每個模塊都有一個context.xml文件,一旦加載應用程序,所有文件都將被加載。您的模塊是獨立的,也可以在不同的環境中使用。這幾乎是我也這樣做的方式。

+0

謝謝你快速回答!你提供的鏈接答案確實有幫助。 – Xeperis

相關問題