Вы правы в своих предположениях.Чего вы не знаете, так это того, что DispatcherServlet
имеет свой собственный контекст, определенный в *-servlet.xml
.Этот контекст обычно является дочерним по отношению к основному контексту приложения, обычно определяемому в applicationContext.xml
.Дочерний может получить доступ ко всем bean-компонентам, определенным в родительском контексте, но не наоборот.
Теоретически вы можете жить только с одним DispatcherServlet
контекстом и иметь все bean-компоненты (DAO, службы, разграничение транзакций).Но это плохая практика в больших проектах.Также два контекста позволяют провести грань между бизнес-логикой и веб-слоем.
Практическое значение - если у вас есть два DispatcherServlet
s, то нет способа разделить бины между ними, если у них нет общегородительский контекст.