На самом деле я пытаюсь понять DispatcherServlet и узнал, что он следует шаблону проектирования FrontController.Пытаясь понять шаблон проектирования FrontController, наткнулся на эту ссылку FrontController из справочника Oracle Doc Не так много, как я начинающий, но мало что понял, как ниже
Если у нас нетFrontController Мы часто пытаемся дублировать код в нескольких контроллерах, таких как аутентификация и авторизация.И из-за чего ремонтопригодность становится большой проблемой, если мы хотим что-то изменить в будущем.Таким образом, имея frontController на месте, мы можем перенести основные функции в frontController, и изменения могут быть легко сделаны.
Когда я объяснил то же самое в интервью, он спросил меня, каковы эти основные функции.Я рассказал Internalization, viewResolver, Authentication, Authorization и т. Д. И теперь снова спросил, подумайте, нет ли сервлета-диспетчера, как вы управляете этими функциями в каждом контроллере?
Поскольку я в основном разработчик настольных приложений, я не смог ответитьдля его следующего вопроса.
Итак, вот мои вопросы
Во-первых, верно ли мое понимание?
Если я понимаюправильно, как ответить на второй вопрос интервьюера?Что, если не использовать диспетчерский сервлет, как вы выполняете эти функции в каждом контроллере?значит попросил меня написать какой-нибудь псевдокод общих функций.Что я не мог, так как я разработчик свинга.Может, кто-нибудь объяснит мне пример кода, который мы повторяем на контроллере, а теперь с диспетчером, которого можно избежать.
Если мы начнем сравнивать DispatcherServlet с шаблоном проектирования frontController, можно ли сказать, что это LocaleResolver?, HandlerMapping, ThemeResolver, ViewResolver, HandlerExceptionResolver, HandlerAdapter, MultipartResolver и т. Д. Являются вспомогательными классами для DispatcherServlet?