По умолчанию у вас уже должно быть два контекста.Контекст, названный в честь вашего сервлета ([servlet-name] -context.xml), является WebApplicationContext и является дочерним контекстом основного ApplicationContext, который создается из файлов, перечисленных в contextConfigLocation, и загружается ContextLoaderListener.Дочерний может получить доступ к любым bean-компонентам, определенным в родительском объекте, но родитель не имеет доступа к bean-компонентам, определенным в дочернем компоненте, поэтому имейте это в виду, прежде чем начинать перемещать bean-компоненты.
Я сохраняю только веб-конфигурацию в WebApplicationContext - мои контроллеры и представления и тому подобное.Все, что не относится к сети, попадает в основной ApplicationContext, который сам по себе всегда представляет собой один файл, который просто импортирует ряд других XML-файлов контекста приложения, разбитых по слоям, как это предлагают другие.
<import resource="classpath:dao-context.xml" />
<import resource="classpath:service-context.xml" />
<import resource="security-context.xml" />
Обратите внимание, что Spring допускает только один элемент property-placeholder в каждом контексте приложения, но вы также можете иметь его в каждом дочернем контексте приложения, поэтому мой файл [servlet-name] -context.xml всегда имеет свойство-placeholderсо специфичными для веб-сайта свойствами конфигурации, а основной контекст приложения имеет другой контекст, который я обычно определяю прямо в файле верхнего уровня, перед всем импортом.