![](https://img-blog.csdnimg.cn/20190927151124774.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
从源码看世界
文章平均质量分 87
这个作者很懒,什么都没留下…
sunny8zhou
这个作者很懒,什么都没留下…
展开
-
从源码看世界:Mybatis初始化过程(上)
从注册的内容中可以看出,类型别名主要用于取代复杂的类型全限定名,由于Mybatis支持xml和注解配置,配置一般以字符串形式键入,使用类型别名可以更加方便地进入配置,其用途或用于映射器配置文件中进行参数类型与返回结果类型的设置,或用于其它特定字符的类解析例如JDBC=JdbcTransactionFactory等等。registerAlias方法最终是保存在HashMap里,key=别名,value=类对象。至此,sql的生成已完成,具体的sql解析请自行查看源码,主要还是字符串的解析。原创 2020-01-26 19:13:00 · 26 阅读 · 0 评论 -
从源码看世界:Springboot整合Mybatis后到底做了什么
在 Mybatis一次数据库操作过程 的文章中,我展示了使用Mybatis操作数据库的demo,但实际使用时并不会这里写代码,因为一般都会使用springboot了,那现在我们一起来看看S...原创 2020-01-30 00:16:00 · 25 阅读 · 0 评论 -
从源码看世界:Mybatis初始化过程(下)
statement的id、查询offset/limit、sql、参数和环境id,属于二级缓存(此二级非二级分布式缓存,它由事务缓存管理器提供,仍然存储于本地)。可以看到Executor也在这里实例化了,还记得Executor是真正发起数据库操作的执行器,并且Executor有多个实现类,这里到底使用的是哪个实现类呢。众所周知,接口是无法实例化的,那Mybatis到底实例出来的是什么东西呢?这是Mybatis的一种扩展机制,通过拦截器添加自定义操作,需要实现各自的接口并实现到全局配置中。原创 2020-01-26 23:03:00 · 18 阅读 · 0 评论 -
从源码看世界:偏向锁从入门到放弃
完整的偏向流程:撤销锁成本大,需要等待安全点逻辑过于复杂,并且到处都耦合偏向锁的逻辑,后期维护成本高编程思维的改变,锁范围的缩小与锁竞争的频率增加都会导致偏向失效,反而降低程序性能偏向锁撤销需要安全点原因:对象头需要存储线程信息(方便偏向),因此需要在线程栈帧中遍历寻找lock record,在非safepoint时栈帧是动态的偏向锁适用范围:单一线程反复进入同步块。原创 2022-06-20 09:48:00 · 162 阅读 · 0 评论 -
从源码看世界:tomcat如何在spring boot中启动
在前面的介绍中已经了解过ServletWebServerFactory的实现类,其中就有一个抽象实现类AbstractServletWebServerFactory,它里面实现了session、contextPath、ServletContextInitializer等容器的通用方法,这样tomcat、jetty等容器工厂实现类只需继承这个抽象类即可拥有通用能力,无需重复实现,这种设计也就是常说的。Spring boot之所以如此受欢迎,不仅自动完成了大量配置,还内嵌了web容器tomcat,开箱即用。原创 2020-02-22 19:15:00 · 89 阅读 · 0 评论