В веб-приложении архитектура обычно делится на слои, подобные популярной структуре MVC.Таким образом, веб-приложение состоит в основном из уровня, который обрабатывает клиентские запросы, то есть HTTPRequests, и уровня, который обслуживает эти запросы.
Подводя итог: классы, предназначенные для обработки запросов Http, т.е. контроллеры, которые отображаются на URL-адреса, входят в test-servlet.xml.Это называется WebapplicationContext, содержащим только компоненты, которые требуются в основном для обработки клиентских запросов.
Теперь следующая часть - это уровень Service / Dao, который включает вашу бизнес-логику.Бины, выполняющие такую логику, загружаются в объекте ApplicationContext.
Теперь вы можете спросить, почему они разделили эти вещи на файлы или два разных объекта.
Это потому, что приложение имеет одинаковый бизнеслогика, которая может использоваться несколькими клиентами, работающими по разным протоколам.Вы можете использовать те же уровни обслуживания для обработки RMI, а также HTTP-вызовов.Поэтому Spring создал родительский контекст, который запускается нами как ApplicationContext.И затем, если ваше приложение обрабатывает веб-запросы, вы можете создать сервлет диспетчера, который имеет собственный контекст Webapplication и инициализируется как дочерний элемент родительского контекста.Таким образом, на все родительские бины можно ссылаться в потомке, и они могут быть переопределены, но не наоборот