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,感謝您對本站的認可!
本文鏈接:http://www.newhan.cn/zhishi/a/167763054866974.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:hibernate官網(org.hibernate).doc
本文 PDF 下載地址:hibernate官網(org.hibernate).pdf
| 留言與評論(共有 0 條評論) |