前言 动机 最近在学习Netty框架,发现Netty是支持Http协议的。加上以前看过Spring-MVC的源码,就想着二者能不能结合一下,整一个简易的web框架(PS:其实不是整,是抄) 效果 项目地址:terabithia 0.3版本使用效果如下,其实就是Spring-MVC的Controller的写法 @RestController @RequestMapping(value = "/hello") public class HelloController { /** * request url:/hello…

2022年6月21日 0条评论 396点热度 2人点赞 王谷雨 阅读全文

工作机制中分三部来分析springmvc的源代码 ApplicationContext初始化时建立所有url和controller类的对应关系(用Map保存) 根据请求url找到对应的controller,并从controller中找到处理请求的方法 request参数绑定到方法的形参,执行方法处理请求,并返回结果视图 ApplicationContext初始化时建立所有url和controller类的对应关系(用Map保存) Sptingboot中的调用链 RequestMappingHandlerMapping…

2022年6月16日 0条评论 363点热度 0人点赞 王谷雨 阅读全文

返回值解析器 用于对controller的返回值进行二次处理 结构 // 返回值解析器 public interface HandlerMethodReturnValueHandler { // 判断 HandlerMethodReturnValueHandler 是否支持 MethodParameter boolean supportsReturnType(MethodParameter returnType); // 处理给定的返回值 void handleReturnValue(@Nullable Objec…

2022年6月16日 0条评论 364点热度 0人点赞 王谷雨 阅读全文

下图是springmvc的执行流程 图片来源:https://www.jianshu.com/p/8a20c547e245 DispatcherServlet根据url定位到Controller和方法,依赖的是HandlerMapping接口的各个实现类,其中,RequestMappingHandlerMapping是专门用来处理注解方式的Controller的 下面,我们分RequestMappingHandlerMapping的加载以及RequestMappingHandlerMapping如何根据url定位C…

2022年6月16日 0条评论 367点热度 0人点赞 王谷雨 阅读全文

在springmvc中,如何根据url找到controller以及对应方法,依赖的是HandlerMapping接口的getHandler方法 在spring容器中默认注册的HandlerMapping有以下五种: RequestMappingHandlerMapping BeanNameUrlHandlerMapping SimpleUrlHandlerMapping RouterFunctionMapping WelcomePageHandlerMapping 本文主要探索spring和springboot启动…

2022年6月16日 0条评论 440点热度 0人点赞 王谷雨 阅读全文