目录
Spring的应用上下文(spring application context)
Spring MVC
认识Spring MVC
核心:DispatcherServlet
Controller:怎么处理每个请求的逻辑
XXXResolver:视图解析器、异常解析器、MultipartResolver解析器
HandlerMapping:请求处理逻辑,请求怎么映射到Controller上
Spring的应用上下文(spring application context)
application context可以获取spring中管理的bean。
Spring MVC的请求处理流程
Front Controller:前端处理Controller(就是DispatcherServlet)
DispatcherServlet将请求代理给对应(通过映射关系来寻找)的Controller处理类(在代理给对应的处理类之前会做前置处理和后置处理)
处理完之后将Model返回给DispatcherServlet
DispatcherServlet将model交给视图解析器,视图解析器解析出对应的视图,处理完之后返回给DispatcherServlet
最后返回请求
如何定义处理方法
DispatcherServlet处理请求:怎么定义Controller,定义RequestMapping中的方法,自定义类型转换
SpringBoot 确实为我们做了很多事情, 但有时候我们想要自己定义一些Handler,Interceptor,ViewResolver,MessageConverter,该怎么做呢。在Spring Boot 1.5版本都是靠重写WebMvcConfigurerAdapter的方法来添加自定义拦截器,消息转换器等。SpringBoot 2.0 后,该类被标记为@Deprecated。因此我们只能靠实现WebMvcConfigurer接口来实现。
Spring MVC中的视图解析
不同的视图解析器:
怎样做视图解析:
针对有modelandview返回的解析过程:初始化servlet的时候会初始化所有的Resolvers,doDispatch处理请求返回modelandview的结果。processDispatchResult从视图名到具体视图的解析,解析出view对象之后做一个视图的呈现。没有返回的视图的话,尝试加载一个默认的视图并返回。
Spring MVC中常用的视图
stringtobean beantostring
@ResponseBody(返回Json格式的视图解析)
重定向视图
静态资源与缓存
Spring MVC中的异常处理机制
怎么写一个异常处理方法:
Spring MVC的切入点
在拦截到请求之前做的操作,将请求给对应的controller,请求处理完之后的操作