【发布时间】:2018-09-14 03:58:08
【问题描述】:
实际上,我正在尝试了解 DispatcherServlet 并知道它遵循 FrontController 设计模式。 在尝试理解 FrontController 设计模式时遇到了这个链接 FrontController from Oracle Doc reference 我是初学者,不太了解,但我了解的东西很少,如下所示
如果我们没有 FrontController,我们经常会尝试在多个控制器中复制代码,例如身份验证和授权。因此,如果我们将来想改变某些东西,可维护性就会成为一个大问题。所以有了frontController,我们就可以将基本功能移到frontController中,并且可以很容易地进行更改。
当我在采访中解释同样的事情时,他问我这些基本功能是什么。我告诉了 Internalization、viewResolver、Authentication、Authorization 等。现在再次问考虑一下,如果没有调度程序 Servlet,您如何处理每个控制器中的这些功能?
因为我基本上是一名桌面应用程序开发人员,所以我无法回答他的下一个问题。
这是我的问题
首先,我的理解正确吗?
如果我的理解是正确的,面试官的第二个问题如何回答?如果没有调度程序 Servlet,您将如何处理每个控制器中的这些功能?意思是让我写一些常用功能的伪代码。我不能,因为我是摇摆开发人员。有人可以向我解释一下,我们在控制器中重复一些示例代码,现在我们可以避免使用调度程序。
如果我们开始比较 DispatcherServlet 和 frontController 设计模式,我们可以说 LocaleResolver、HandlerMapping、ThemeResolver、ViewResolver、HandlerExceptionResolver、HandlerAdapter、MultipartResolver 等是 DispatcherServlet 的 Helper 类吗?
【问题讨论】:
标签: java spring spring-mvc design-patterns front-controller