![](https://img-blog.csdnimg.cn/20200822085541415.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
SpringMVC实战篇
1、清晰的角色划分
2、强大而直接的配置方式
3、可适配、非侵入
4、可重用的业务代码
5、可定制的绑定(binding)和验证(validation)
6、可定制的handler mapping和view resolution
7、灵活的model转换
8、可定制的本地化和主题(theme)解析
beyondwild
愿你眸有星辰,心有山河,以梦为马,不负韶华!
展开
-
SpringMVC实战篇1:目录
SpringMVC实战篇1:目录 SpringMVC实战篇2:SpringMVC请求过程设计思路 SpringMVC实战篇3:SpringMVC源码解析一(在Spring源码项目中搭建SpringMVC源码模块) SpringMVC实战篇4:SpringMVC源码解析二(请求过程解析) SpringMVC实战篇5:SpringMVC源码解析三(处理映射器HandlerMapping的解析) SpringMVC实战篇6:SpringMVC源码解析四(处理适配器HandlerAdapter的解析)原创 2020-08-22 09:44:04 · 191 阅读 · 0 评论 -
SpringMVC实战篇9:SpringMVC源码解析七(初始化过程解析)
在SpringMVC中处理请求的核心类是DispatcherServlet; SpringMVC在DispatcherServlet类的doDispatch()中维护着请求处理流程的主要逻辑 DispatcherServlet的继承关系图: SpringMVC初始化的触发点: SpringMVC的初始化是从HttpServletBean#init()开始的;Tomcat在启动时最终会调用GenericServlet#init(javax.servlet.ServletConfig), 在该方法原创 2020-08-22 09:43:18 · 211 阅读 · 0 评论 -
SpringMVC实战篇8:SpringMVC源码解析六(ModelAndView解析)
在上一篇博客中解析到在InvocableHandlerMethod#doInvoke()中通过反射执行处理方法, 返回值为ModelAndView实例 InvocableHandlerMethod#doInvoke()方法调用链: 在RequestMappingHandlerAdapter#invokeHandlerMethod()方法中主要完成了两件事: 执行处理器方法(HandlerMethod) 封装并返回ModelAndView实例 (1) 执行处理方法以及封装ModelAndVi原创 2020-08-22 09:35:20 · 166 阅读 · 0 评论 -
SpringMVC实战篇7:SpringMVC源码解析五(HandlerMethod执行过程解析)
在获取HandlerMethodAdapter适配器之后, 调用适配器的handle()方法执行处理器, 也就是Control类中我们编写的处理方法 AbstractHandlerMethodAdapter#handle()方法实现: @Override @Nullable public final ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler) ...原创 2020-08-22 09:28:47 · 215 阅读 · 0 评论 -
SpringMVC实战篇6:SpringMVC源码解析四(处理适配器HandlerAdapter的解析)
HandlerAdapter继承关系图: DispatcherServlet#getHandlerAdapter()方法实现: protected HandlerAdapter getHandlerAdapter(Object handler) throws ServletException { if (this.handlerAdapters != null) { for (HandlerAdapter ha : this.handlerAdapters) { ...原创 2020-08-22 09:25:51 · 187 阅读 · 0 评论 -
SpringMVC实战篇5:SpringMVC源码解析三(处理映射器HandlerMapping的解析)
HandlerMapping继承关系图: 1.BeanNameUrlHandlerMapping 配置文件中配置controller的bean,且bean的id必须以“/”开头,id就是controller可以处理的url <bean id = "/hello" class="com.liyao.controller.HelloController"/> 2.SimpleUrlHandlerMapping 需要在配置文件中配置controller的bean以及mapping:原创 2020-08-22 09:18:47 · 136 阅读 · 0 评论 -
SpringMVC实战篇4:SpringMVC源码解析二(请求过程解析)
当服务器接收到从浏览器发送的一个请求后, 首先进入HttpServlet#service()方法中, 想要了解请求进入service()方法之前的逻辑请看这篇博客:Tomcat源码解析六(Http请求过程解析_基于NIO) HttpServlet#service()方法实现: @Override public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException ...原创 2020-08-22 09:11:55 · 144 阅读 · 0 评论 -
SpringMVC实战篇3:SpringMVC源码解析一(在Spring源码项目中搭建SpringMVC源码模块)
1.在Spring源码项目中右键,新建一个Module模块, 在弹窗中选择Gradle, 并且勾选Java和Web 2. 选择根目录并输入ArtifactId,点击确定 3. 项目构建 3.1 配置build.gradle plugins { id 'java' id 'war' } group 'org.springframework' version '5.0.16.BUILD-SNAPSHOT' sourceCompatibility = 1.8 ...原创 2020-08-22 09:08:50 · 262 阅读 · 0 评论 -
SpringMVC实战篇2:SpringMVC请求过程设计思路
在我们使用tomcat时, 通常会继承HttpServlet, 然后重写里面的doGet和doPost方法, 然后在web.xml配置请求路径与servlet处理类的映射 示例一: public class AddItemServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOEx...原创 2020-08-22 09:04:51 · 141 阅读 · 0 评论