powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / SpringMVC: зачем нужны 2 контекста?
2 сообщений из 2, страница 1 из 1
SpringMVC: зачем нужны 2 контекста?
    #39140664
skywriter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В книге SpringInAction сказано, что WebApplicationContext объекта класса DispatcherServlet нужен для настройки обработки запросов (контроллеров, view resolver-ов), а "корневой" WebApplicationContext нужен для хранения там остальных бинов.
Но я вот щас переопределил метод getDispatcherWebApplicationContextSuffix() класса AbstractSecurityWebApplicationInitializer, и у меня бин "springSecurityFilterChain", как впрочем и "securityConfig", успешно разместился в контексте сервлета. Если это работает, то почему бы все бины просто не располагать в контексте сервлета, зачем нужно ещё настраивать контекст приложения?

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
public class SecurityInitializer extends AbstractSecurityWebApplicationInitializer {

    @Override
    protected String getDispatcherWebApplicationContextSuffix() {
        return "mvc-dispatcher";
    }

}
...
Рейтинг: 0 / 0
SpringMVC: зачем нужны 2 контекста?
    #39140845
imperfekt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skywriter,

Эта тема неплохо объяснена, например, в этом вопросе на stackoverflow.
Та же тема в официальном спринговском руководстве .

Если коротко и своими словами, при использовании Spring MVC формируется иерархия контекстов. WebApplicationContext содержит информацию о классах, связанных с работой MVC-фреймворка (контроллеры, вью-резолверы и т.д.), а также позволяет непосредственно взаимодействовать с сервлет-контекстом. "Корневой" контекст содержит информацию о классах, имеющих отношение к бэкенду (ДАО/репозитории, сервисы и т.п.). Из WebApplicationContext'а можно обращаться в "корневой", но не наоборот.
Такое разграничение существует из тех соображений, что в приложении может быть несколько WebApplicationContext'ов (пользовательский веб-интерфейс и REST-сервис, например).

В книжке Pro Spring 3 по этому поводу приводится, например, такая диаграммка:




На диаграмме есть "корневой" контекст (слева) и два WebApplicationContext'а (справа), обслуживающие разные сервлеты.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / SpringMVC: зачем нужны 2 контекста?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]