Spring lets you define multiple contexts in a parent-child hierarchy.
applicationContext.xml defines the beans for the “root webapp context”, i.e. the context associated with the webapp.
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
spring2-servlet.xml for servlet
spring-servlet.xml can reference beans in
applicationContext.xml, but not vice versa.
All Spring MVC controllers must go in the
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.