随笔分类 - 源码阅读
摘要:在介绍Mybatis拦截器代码之前,我们先研究下jdk自带的动态代理及优化 其实动态代理也是一种设计模式...优于静态代理,同时动态代理我知道的有两种,一种是面向接口的jdk的代理,第二种是基于第三方的非面向接口的cglib. 我们现在说的是jdk的动态代理,因为mybatis拦截器也是基于这个实现
阅读全文
摘要:Myabtis的SQL的执行是通过SqlSession。默认的实现类是DefalutSqlSession。通过源码可以发现,selectOne最终会调用selectList这个方法。 通过上面可以发现是通过Executor去执行查询。但是executor是个接口,是什么时候指定的用什么执行器呢。 因
阅读全文
摘要:源码解读第一步我觉着应该从Mybatis如何解析配置文件开始。 1.先不看跟Spring集成如何解析,先看从SqlSessionFactoryBuilder如果解析的。 SqlSessionFactoryBuilder 真正初始化Configuration的类是XMLConfigBuilder 因为
阅读全文
摘要:Mybatis在我看来最大的用处就是封装了jdbc,设置参数操作和获取解析结果集。同时控制了数据库链接等操作,大部分采用了反射来映射javabean对象来进行数据库操作。 1.接下来先整体介绍下主要的类: Configuration MyBatis所有的配置信息都维持在Configuration对象
阅读全文
摘要:首先看下doDispatch()方法如何找到适合的适配器来执行方法的: 注: 这块也有点责任链模式的意思... 下面看下RequestMappingHandlerAdapter是怎么实现support方法的,看之前先上类图。 实际上support方法是在AbstractHandlerMethodAd
阅读全文
摘要:通过类图可以看到,实现了InitializingBean接口,所以入口的方法就是 afterPropertiesSet(); 下面来看代码: 注意:这些解析器实际上都是一个*****Composite结尾的包装类,实际上就是责任链模式的管理类,提供查找具体的解析器和执行方法,这块内容就不多描述了.
阅读全文
摘要:这个思路同样是通过在AbstractHandlerMethodMapping里面来实现getHandlerInternal()实现自己的方法来处理寻找正确的处理器,不懂得请看上一篇。 RequestMappingInfoHandlerMapping 中 handleNoMatch 的实现 1 pro
阅读全文
摘要:本文讲的是Spring MVC如何找到正确的handler, 前面请求具体怎么进入到下面的方法,不再细说。 大概就是Spring mvc通过servlet拦截请求,实现doService方法,然后进入doDispatch()方法,这个是完成请求的方法. 今天我们只分析:mappedHandler =
阅读全文
摘要:isHandler方法是在RequestMappingHandlerMapping中实现的 回到AbstractHandlerMethodMapping看: 来看getMappingForMethod的实现,是在RequestMappingHandlerMapping实现的 备注下;RequestM
阅读全文
摘要:前面信息同BeanNameUrlHandlerMapping,这里不再过多分析,详情请看 : Spring MVC的handlermapping之BeanNameUrlHandlerMapping初始化 同样先上类图: 可以看到SimpleUrlHandlerMapping是直接继承Abstract
阅读全文
摘要:先介绍一下: BeanNameUrlHandlerMapping是基于配置文件的方式; 所有处理器需要在XML文件中,以Bean的形式配置。 缺点:配置繁琐; 如果多个URL对应同一个处理器,那么需要配置多条,同时也会实例化多个对象等等。。。 因为springmvc 是基于spring的,所以他的初
阅读全文

浙公网安备 33010602011771号