mybatis延遲加載原理


使用CGLIB創建目標對象的代理對象,當調用目標方法時,進入攔截器方法,比如調用A.getB().getName(),攔截器invoke()方法發現A.getB()是null值,那么就會單獨發送事先保存好的查詢關聯B對象的sql,把B查詢上來,然后調用A.setB(b),於是a的對象b屬性就有值了,接着完成A.getB().getName()方法的調用。這就是延遲加載的基本原理。

所以在b/s開發,似乎沒有什么用? 因為傳遞到前端的時候,轉換成json字符串的過程中依然是,調用了get方法,所以一次請求,依然是加載了所有的數據,還不如直接在前端需要的時候,再發起請求?希望有大佬能夠解答一下


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM