Hibernate官网下载
hibernate官网的几个版本有什么不同的吗
如何学习hibernate源码
我来分享一下查看源码的方法:
查看源码的首要任务是要有一款上手的工具,这里用的是 IDEA。IDEA 的功能比较强大,包括 查看类结构图,debug。这两个是查看源码的关键功能。
查看源码可以静态查看和动态查看,静态查看的方法是查看类图,还有 ALT + f7 查看方法在哪里被调用或者类在哪里被调用。在看 spring 源码的时候就是用这种方法,不过这种方法对阅读者的要求比较高,包括要了解这个方法的执行,设计模式的理解,以及框架是如何配置这个类的。第二种方法是 debug。debug 方法是后来才发现的一个重要的 查看源码的方法,要点是掌握执行栈,就能掌握整个执行流程。比如这个是在debug hibernate 源码的时候的截图,可以看到这个执行栈非常深,从 spring-data-jpa 到 hibernate 中间经过好几层的代理,主要完成一些适配,事务,拦截器等等操作,然后再到 hibernate 核心代码,最后就是 jdbc 的 statement。方法栈中的每一个方法都是可以查看的,里面的变量有时候是代理了好几层,所以要 F7 进去才能看到真正的执行类。
另外,查看代码不能漫无目的的看,需要抓住一个主题,比如在看 mybatis 的源码的时候,就需要看 cache 机制,拦截器机制,statement 机制,代理机制。每一个主题都有各自的重点。比如 mybatis 的缓存:
这一段可以看到,如果 MapperStatement 配置了缓存,则进行缓存的处理:
flushCacheIfRequired 根据条件是否进行缓存清理, 如果 MapperStatement 使用了缓存(isUCache),则从 TransactionalCacheManager 中获取结果,然后返回,如果为 null,则查询数据库,然后将结果存入 tcm.putObject(cache, key, list);
TransactionalCacheManager 相当于一个门面,他管理真个缓存机制,负责提供功能给外部模块的调用,真正实现的是下面的几个类,这个几个类的组织是一个装饰模式,最终的存储类是 PerpetualCache, 如果要实现自定义的话就可以通过配置,替换掉 PerpetualCache.
上面是简单的简述 mybatis 的 cache 机制的源码,真正想让读者明白的是,debug 如何查看源码,查看源码需要抓住一个主题,不然在阅读庞大的框架的时候会找不着北。
所以,阅读源码需要掌握工具使用,debug, 查看类图,查看方法在哪里调用,软知识是要掌握设计模式,对框架的概念有了解。
本文发布于:2023-02-28 19:44:00,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/zhishi/a/167763054866974.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:hibernate官网(org.hibernate).doc
本文 PDF 下载地址:hibernate官网(org.hibernate).pdf
| 留言与评论(共有 0 条评论) |