Spring中的applicationContext.xml與SpringMVC的xxx-servl

一直搞不明白二者的區別。
若是使用了SpringMVC,事實上,bean的配置徹底能夠在xxx-servlet.xml中進行配置。爲何須要applicationContext.xml?必定必須?

1、
由於直接使用了SpringMVC,因此以前一直不明白xxx-servlet.xml和applicationContext.xml是如何區別的,其實若是直接使用SpringMVC是能夠不添加applicationContext.xml文件的。
使用applicationContext.xml文件時是須要在web.xml中添加listener的:
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
而這個通常是採用非spring mvc架構,如使用struts之類而又想引入spring才添加的,這個是用來加載Application Context。
若是直接採用SpringMVC,只須要把全部相關配置放到xxx-servlet.xml中就OK了。

2、
Spring lets you define multiple contexts in a parent-child hierarchy.

The applicationContext.xml defines the beans for the "root webapp context", i.e. the context associated with the webapp.

The spring-servlet.xml (or whatever else you call it) defines the beans for one servlet's app context. There can be many of these in a webapp, one per Spring servlet (e.g. spring1-servlet.xml for servlet spring1, spring2-servlet.xml for servlet spring2).

Beans in spring-servlet.xml can reference beans in applicationContext.xml, but not vice versa.

All Spring MVC controllers must go in the spring-servlet.xml context.

In most simple cases, the applicationContext.xml context is unnecessary. It is generally used to contain beans that are shared between all servlets in a webapp. If you only have one servlet, then there's not really much point, unless you have a specific use for it.web

相關文章
相關標籤/搜索