
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 · 223 阅读 · 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 · 237 阅读 · 0 评论 -
SpringMVC实战篇8:SpringMVC源码解析六(ModelAndView解析)
在上一篇博客中解析到在InvocableHandlerMethod#doInvoke()中通过反射执行处理方法, 返回值为ModelAndView实例InvocableHandlerMethod#doInvoke()方法调用链:在RequestMappingHandlerAdapter#invokeHandlerMethod()方法中主要完成了两件事:执行处理器方法(HandlerMethod) 封装并返回ModelAndView实例(1) 执行处理方法以及封装ModelAndVi原创 2020-08-22 09:35:20 · 217 阅读 · 0 评论 -
SpringMVC实战篇7:SpringMVC源码解析五(HandlerMethod执行过程解析)
在获取HandlerMethodAdapter适配器之后, 调用适配器的handle()方法执行处理器, 也就是Control类中我们编写的处理方法AbstractHandlerMethodAdapter#handle()方法实现:@Override@Nullablepublic final ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler) ...原创 2020-08-22 09:28:47 · 257 阅读 · 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 · 235 阅读 · 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 · 184 阅读 · 0 评论 -
SpringMVC实战篇4:SpringMVC源码解析二(请求过程解析)
当服务器接收到从浏览器发送的一个请求后, 首先进入HttpServlet#service()方法中, 想要了解请求进入service()方法之前的逻辑请看这篇博客:Tomcat源码解析六(Http请求过程解析_基于NIO)HttpServlet#service()方法实现:@Overridepublic void service(ServletRequest req, ServletResponse res) throws ServletException, IOException ...原创 2020-08-22 09:11:55 · 177 阅读 · 0 评论 -
SpringMVC实战篇3:SpringMVC源码解析一(在Spring源码项目中搭建SpringMVC源码模块)
1.在Spring源码项目中右键,新建一个Module模块, 在弹窗中选择Gradle, 并且勾选Java和Web2. 选择根目录并输入ArtifactId,点击确定3. 项目构建 3.1 配置build.gradleplugins { id 'java' id 'war'} group 'org.springframework'version '5.0.16.BUILD-SNAPSHOT' sourceCompatibility = 1.8 ...原创 2020-08-22 09:08:50 · 292 阅读 · 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 · 172 阅读 · 0 评论