![](https://img-blog.csdnimg.cn/20191229200936484.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
源码阅读
mybatis、netty
shuimuhanchen
天地者,万物之连旅;光阴者,万代之过客。
展开
-
mybatis-transaction包阅读
transaction包主要功能JdbcTransaction:单独使用Mybatis时,默认的事务管理实现类,就和它的名字一样,它就是我们常说的JDBC事务的极简封装,仅是让connection支持连接池而已ManagedTransaction:含义为托管事务,空壳事务管理器,仅是提醒用户,在其它环境中应用时,把事务托管给其它框架,比如托管给Spring去管理事务核心配置对象中,CachingExecutor执行器就是用来处理二级缓存的执行器。transaction包主要结构transact原创 2020-07-31 21:44:25 · 215 阅读 · 0 评论 -
mybatis-type包阅读
type包主要功能完成java数据类型与jdbc数据类型的互相转化。type包主要结构type包设计模式模版方法设计模式:我们可以自定义typeHandler,只需要继承BaseTypeHandler重写几个基本的方法即可。TypeReference类源码很经典,各个typeHandler都继承它,TypeReference只有一个成员变量rawType,此字段保存这个TypeHandler对相应的原生java类型Mybatis在启动初始化过程中,会将自带的java类型与用户自定义的ty原创 2020-07-31 21:38:41 · 469 阅读 · 0 评论 -
mybatis-cache包阅读
cache包主要功能一级缓存:一级本地缓存都是PerpetualCache类型,保存在BaseExecutor执行器,而执行器又在SqlSession中,所以一级缓存的生命周期与SqlSession相同,除非指定一级缓存范围为STATEMENT二级缓存:二级自定义缓存,实现了Cache接口的类都可以作为二级缓存,所以还可配置第三方缓存。二级缓存以namespace名称空间为其唯一标识,被保存在Configuration核心配置对象中,CachingExecutor执行器就是用来处理二级缓存的执行器。原创 2020-07-29 22:46:57 · 301 阅读 · 0 评论 -
mybatis-plugin包阅读
plugin包主要功能用户可通过编写插件来自行扩展功能,例如分表功能,通过拦截sql语句,重新拼接sql语句,进行分表。plugin包主要结构可以拦截那些接口对象呢?(也就是上图中的target有哪些呢)如图所示:interceptorChain.pluginAll()方法方法在创建ParameterHandler、ResultSetHandler、StatementHan...原创 2020-05-02 17:47:17 · 179 阅读 · 0 评论 -
mybatis-executor包阅读
executor包主要功能入口是调用SqlSessionFactoryBuilder,SqlSessionFactoryBuilder再调用builder包(builder包阅读将在后续更新)中的XMLConfigBuilder解析.xml配置文件,从而返回一个SqlSessionFactory,再通过SqlSessionFactory就可以获取到SqlSession了。DefaultSql...原创 2020-04-07 12:01:05 · 180 阅读 · 0 评论 -
mybatis-binding包阅读
binding包主要功能binding包主要结构binding包设计模式附上一段源码做参考:/** - @author Clinton Begin - BaseBuilder下的每个子类在使用构造器实例化时,必定会调用BaseBuilder的构造方法,这是因为BaseBuilder内部维护着三个属性Configuration,TypeAliasRegistry,Typ...原创 2020-03-20 17:11:33 · 166 阅读 · 0 评论 -
mybatis-builder包阅读
builder包主要功能builder包的核心功能很简单,就是解析xml配置文件,汇总到session包的一个大杂烩的类Configuration中;核心是三个类:XMLConfigBuilder、XMLMapperBuilder、XMLStatementBuilder分别解析mybatis-config.xml、XXXMapper.xml、XXXMapper.xml中的每一个sql语句;...原创 2020-03-19 17:50:32 · 508 阅读 · 0 评论 -
mybatis-session包阅读
session包主要功能session包主要结构session包设计模式原创 2020-01-25 17:24:35 · 1356 阅读 · 0 评论 -
cubbo-第一个rpc框架
dubbo源码看不懂,现自己实现一个rpc,名为cubbo,跟dubbo比简直菜的抠脚…不过希望可以为源码学习打下基础:原创 2019-06-18 00:18:28 · 166 阅读 · 0 评论 -
从io到netty
io与线程池优化io:0、io同步、阻塞1、io的客户端与线程数的比是1:1;线程池优化后的io是m:n2、io是面向stream编程,因此一个线程只能等待流处理,因此阻塞nio:0、nio同步、非阻塞1、nio的客户端与线程数比是m:12、nio是面向buffer编程,因此一个线程写或者读缓冲区后就可以做其他事情了,因此非阻塞图解:(这不就是在东北吃烧烤吗?)服务端注册Sele...原创 2019-06-16 22:07:18 · 896 阅读 · 0 评论