深入解析SpringMVC核心原理:从手写简易版MVC框架开始(SmartMvc) SpringMVC采用了松散耦合可插拔组件结构,比其他MVC框架更具扩展性和灵活性;为了提高框架的扩展性和灵活性,设计了松耦合可插拔的组件。理解SpringMVC的原理,在面试或工作中都十分的重要
Continue Reading “深入解析SpringMVC核心原理:从手写简易版MVC框架开始(SmartMvc)”
Simple Programmer, Make the complex simple
深入解析SpringMVC核心原理:从手写简易版MVC框架开始(SmartMvc) SpringMVC采用了松散耦合可插拔组件结构,比其他MVC框架更具扩展性和灵活性;为了提高框架的扩展性和灵活性,设计了松耦合可插拔的组件。理解SpringMVC的原理,在面试或工作中都十分的重要
Continue Reading “深入解析SpringMVC核心原理:从手写简易版MVC框架开始(SmartMvc)”
SmartMvc项目实战 SmartMVC基本都功能都已完成,接下来我们就来做一个SmartMVC的项目实战,测试下SmartMVC是否能正常的工作。SpringBoot项目中引入SmartMVC的步骤修改SpringBoot生成的启动类,指定SmartMVC
由于SpringBoot默认的web框架就是SpringMVC,如果我们需要完成与SpringBoot的集成,就需要在IOC容器的基础上定制开发Web容器,其次,SpringBoot使用的是嵌入式Web服务器,所以我们还需要开发驱动嵌入式Web服务器的容器;
SmartMvc与SpringBoot集成(一) 由于SpringBoot默认的web框架就是SpringMVC,如果我们需要完成与SpringBoot的集成,就需要在IOC容器的基础上定制开发Web容器,其次,SpringBoot使用的是嵌入式Web服务器,
拦截器HandlerInterceptor 首先我们来定义`HandlerInterceptor`接口,1. preHandle: 在执行Handler之前被调用,如果返回的是false,那么Handler就不会在执行2. postHandle: 在Handler执行完成之后被调用
核心配置类WebMvcConfigurationSupport 能把大部分的配置都封装起来,把个别的扩展点暴露给框架的使用者,并且用户如果没有需求扩展,直接使用注解`@EnableWebMvc`就可以完成SmartMVC框架的配置工作,现在我们就开始来开发这个功能。
全局异常处理器HandlerExceptionResolver 当找出了所有被`ControllerAdvice`标注的类之后,我们还需要解析出这些类中哪些方法被注解`ExceptionHandler`标注过,`ExceptionHandlerMethodResolver`
`DispatcherServlet` 继承自 `HttpServlet` ,通过使用 Servlet API 对 HTTP 请求进行响应。其工作大致分为两部分:1. 初始化部分,当Servlet在第一次初始化的时候会调用 init方法
视图解析器ViewResolver 首先我们来定义视图解析器的接口`ViewResolver`,因为`ViewResolver`组件的作用是将viewName解析成View对象,所以参数是viewName,处理完成后返回的对象是View
视图InternalResourceView、RedirectView AbstractView因为视图可以有很多的实现类,比如:JSON、JSP、HTML、各类模板等等,所以我们定义一个抽象类`AbstractView`,通过模板方法定义出渲染的基本流程