Spring MVC

Spring MVC 运行流程

  • Spring MVC 将所有的请求都提交给 DispatcherServlet,它会委托应用系统的其他模块负责对请求进行真正的处理工作。
  • DispatcherServlet 查询一个或多个 HandlerMapping,找到处理请求的 Controller.
  • DispatcherServlet 请求提交到目标 Controller
  • Controller 进行业务逻辑处理后,会返回一个 ModelAndView
  • Dispatcher 查询一个或多个 ViewResolver 视图解析器,找到 ModelAndView 对象指定的视图对象
  • 视图对象负责渲染返回给客户端。

Spring MVC 启动流程

在 web.xml 文件中给 Spring MVC 的 Servlet 配置了 load-on-startup,所以程序启动的时候会初始化 Spring MVC,在 HttpServletBean 中将配置的 contextConfigLocation 属性设置到 Servlet 中,然后在 FrameworkServlet 中创建了 WebApplicationContextDispatcherServlet 根据 contextConfigLocation 配置的 classpath 下的 xml 文件初始化了 Spring MVC 总的组件。

Spring 的单例实现原理

Spring 对 Bean 实例的创建是采用单例注册表的方式进行实现的,而这个注册表的缓存是 ConcurrentHashMap 对象。

Spring 框架中用到了哪些设计模式

  • 代理模式:在 AOP 和 Remoting 中被用的比较多。
  • 单例模式:在 Spring 配置文件中定义的 Bean 默认为单例模式。
  • 模板方法:用来解决代码重复的问题。比如. RestTemplate, JmsTemplate, JpaTemplate。
  • 前端控制器:Spring 提供了 DispatcherServlet 来对请求进行分发。
  • 视图帮助(View Helper ):Spring 提供了一系列的 JSP 标签,高效宏来辅助将分散的代码整合在视图里。
  • 依赖注入:贯穿于 BeanFactory / ApplicationContext 接口的核心理念。
  • 工厂模式:BeanFactory 用来创建对象的实例。

转自:有梦想的咸鱼

posted @ 2020-11-26 09:03  乘风破浪的小子  阅读(62)  评论(0编辑  收藏  举报