2010-09-19 93 views
14

Spring Web MVC框架我們可以更改DispatcherServlet上下文配置文件名嗎?

1)如果我們定義DispatcherServlet如下

<servlet> 
    <servlet-name>appServlet</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
</servlet> 

它看起來WEB-INF文件夾下的文件appServlet-servlet.xml在春季參考提及。

我的問題是我們可以改變這個文件名位置它尋找什麼? (?我認爲使用上下文或初始化參數,我們可以做到這一點,任何機構可以告訴我應該是什麼)

2)在每Spring Web MVC框架web.xml,我們將有如下一行:

<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 

在這裏,我的問題是它尋找什麼上下文文件? (這是查找dispatcherservlet-servlet.xml的上下文加載器偵聽器嗎?)

3)dispatcherservlet-servlet.xmlapplicationcontext.xml之間的區別? (我看到一些人examples..where導入applicationcontext.xmldispatcherservlet-servlet.xml?)

4)請告訴我,我們有多少上下文可以有彈性的網絡,並對此有任何的命名約定(如分發程序Servlet)?/

+0

我希望下面的鏈接能夠回答你的問題。 http://stackoverflow.com/questions/11815339/role-purpose-of-contextloaderlistener-in-spring – user2292029 2013-04-17 18:10:24

回答

19
  1. 「命名空間也可以通過namespace servlet init-param明確設置。」你可以設置你想要的任何路徑有,相對於上下文根

  2. 沒有,ContextLoaderListener查找applicationContext.xml(或由的context-param contextConfigLocation指定的文件。同樣的路徑是相對於上下文根。我通常將我的地址放在/WEB-INF/classes/applicationContext.xml中,並將其設置爲context-param的值)。

  3. dispatcherServlet-servlet.xml是由applicationContext.xml定義的子環境。子上下文可以從父上下文訪問bean,但事實恰恰相反。所以想象你有一個「網絡」的背景下,所有的控制器和網絡相關的東西,以及與所有其他的「主」背景

  4. 建議儘可能少的上下文(爲了簡單起見) 。但是您可以定義多個調度程序servlet,因此具有多個「子」上下文。

+0

Bozho,感謝您的回覆......我仍然不清楚前兩個答案。 (1)問題是關於它尋找的調度程序servlet上下文文件和路徑的名稱。默認情況下,文件應該是' .xml',並且應該在'WEB-INF'文件夾下,我們可以通過使用init參數來更改這些規則嗎? (2)所以它尋找'applicationcontext.xml',你能描述一下路徑嗎? – javanoob 2010-09-19 14:22:29

+0

@javanoob - 看到更新。您可以設置相對於上下文根的路徑。 – Bozho 2010-09-19 14:41:28

+0

** ContextLoaderListener **接受** contextConfigLocation **的'classpath:/ path/to/spring.xml'語法。 – gavenkoa 2014-04-16 17:26:46

14

我的問題是,我們可以改變這個文件的名稱和位置,它看起來?

難道你的意思是你想使用一個未命名爲appServlet.xml

複製粘貼從mvc-shocase/web.xml

<!-- Processes application requests --> 
<servlet> 
    <servlet-name>appServlet</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
+0

嗨,感謝您的回覆..問題是關於我們可以更改從'appServlet-servlet.xml'(你提到它是'appServlet.xml')的名稱。順便說一句,你知道我是指那個例如(mv-showcase):)? – javanoob 2010-09-20 08:51:25

0

1A)是的文件,但我們需要通過INIT-在DD或Web中分別將DispatcherServlet的名稱和值分別設置爲「contextConfigLocation」和「ur文件的位置」。xml文件。

2A)Bozho已經回答了。它[ContextLoaderListener]將加載作爲上下文參數值提供的上下文xml文件映射到上下文參數的上下文參數名。尋找「dispatcherservlet-servlet.xml」是Spring MVC中的默認過程。 ContextLoaderListener不尋找它。

3A)Bozho已經回答了。 4)Bozho已經回答了。

相關問題