mybatis源码分析
小雨的光
这个作者很懒,什么都没留下…
展开
-
Mybatis源码---重写一个最简单的Mybatis架构实现(四)
前面的三篇文章写下来,发现一个问题,还是需要在关键类上使用@Component注解才能完成Spring对我们的Fisher框架初始化。那么,怎么去掉@Component注解呢?这是一个值得探讨的问题。根据前面的套路,我们发现一个有趣的现象。无论哪种方式(XML配置或是注解),最后都调用了ClassPathMapperScanner类的scan()方法(其实是父类ClassPathBeanD...原创 2018-10-29 17:33:06 · 274 阅读 · 0 评论 -
Mybatis源码---重写一个最简单的Mybatis架构实现(三)
前两篇文章里,我们实现了一个简单的Mybatis。只要愿意,如果完善了后续的数据库操作,我们完全可以用它来替换本来的Mybatis。在本篇文章里,我们要做的是完成我们自定义Mybatis与Spring或SpringBoot集成时的自动配置。首先,我们在来熟悉一下在XML中配置MapperScannerConfigurer时的使用:<bean class="org.mybatis....原创 2018-10-29 16:22:01 · 497 阅读 · 0 评论 -
Mybatis源码---重写一个最简单的Mybatis架构实现(一)
本篇文章旨在实现一个最简单的Mybatis架构。我们想象这样一个场景:有个钓鱼者想得到一条特殊的鱼,这种鱼特殊需要使用某种特殊的鱼竿才能钓上来,于是就有了有了钓鱼的需求。钓鱼者去鱼竿工厂去买了一杆钓这种鱼的鱼竿,却发现自己并不会用这种鱼竿。于是,他托鱼竿工厂给自己联系一个钓鱼高手帮自己钓鱼,自己可以提供鱼竿。然后,鱼竿工厂帮他联系了一个钓鱼高手,钓鱼者把鱼竿交给他,钓鱼高手替钓鱼者钓到...原创 2018-10-25 17:55:20 · 803 阅读 · 0 评论 -
Mybatis源码--MapperScannerConfigurer类
public class MapperScannerConfigurer implements BeanDefinitionRegistryPostProcessor, InitializingBean, ApplicationContextAware, BeanNameAware {} 上面是一个精简版的MapperScannerConfigurer类源码。MapperScanner...原创 2018-10-16 17:25:32 · 452 阅读 · 0 评论 -
Mybatis源码--请求处理详细解读
前两篇文章对Mybatis的启动方式和启动流程做了详细分析。本篇文章将详细解读Mybatis处理请求的过程。接着上篇文章,我们来说说Mapper接口的代理类,因为我们发现注入Mapper接口时其实注入的是Mapper接口的动态代理类,我们所有对Mapper接口的方法操作也是在操作动态代理类。 在初始化Mybatis的过程中将Mapper接口注册到knownMappers容器中是,我们是...原创 2018-10-16 16:13:38 · 258 阅读 · 0 评论 -
Mybatis源码--启动流程详细解读
上篇文章说明了Mybatis的两种启动方式。可以看到,殊途同归,最后都调用了SqlSessionFactoryBuilder类的build(Configuration config)方法。本篇文章将详细解读从XML文件初始化Mybatis的过程。 把XML解析为Configuration对象的步骤是由XMLConfigBuilder类完成的,在SqlSessionFac...原创 2018-10-16 14:09:26 · 525 阅读 · 0 评论 -
Mybatis源码--两种启动方式
又要开始写Mybatis相关的文章了。这段时间看完了SpringMVC和Spring,对Mybatis有了一些新的感受。以前是站在山底看,觉得好巍峨的一座大山。现在站在了更高的地方,终于可以看清它的全貌了。怎么说呢,百味杂陈,因为我是从Mybatis开始读架构源码的,这也是我推荐的一条路线。 首先明确几个问题,Mybatis是什么?它是一个ORM映射架构。Mybatis做了...原创 2018-10-16 13:07:18 · 1628 阅读 · 0 评论 -
Mybatis源码---重写一个最简单的Mybatis架构实现(二)
前言:经过不蟹的努力,终于把Mybatis和Spring结合的代码也给整合进来啦!此处应有掌声,真的,感觉自己一下子进入了另一种天地。话不多说,代码奉上 。这三段代码,就是mybatis和spring整合的核心代码了。1. 第一步,编写一个类似与MapperFactoryBean的类用来提供Fisher接口的代理类,代码如下:public class FisherFac...原创 2018-10-26 16:47:50 · 978 阅读 · 0 评论