Java新手如何學習SpringStrutsHibernate三大框架?
三大框架可以說是Java的必修課了,幾乎所有的Java后臺程序員都有接觸過。其實萬變不離其宗,學習框架最重要的是學習原理,剖析完原理以后對于框架可以說有個深層次的理解了。
Spring
spring其實來說就是一個大容器。
下面就是spring的三大核心思想:
ioc(控制反轉):首先我們舉一個沒有控制反轉的例子。當我們在service層調用dao層的函數時,通常都會實例化一個dao層的對象,然后通過對象來調用函數,而spring的控制反轉就是將這個對象配置到框架(也就是容器)中去,這時我們需要使用這個對象是就向容器去要這個對象而不是我們主動去創建一個,也就是說這個對象的控制權是交給了框架(也可以說交給了配置文件),這就實現了控制反轉。其好處也是不言而喻,代碼可讀性高,維護方便,結構清晰等等。
DI(依賴注入):其實這個可以理解為有值的ioc,我們在配置文件里配置對象屬性的值,例如我們在配置一個user對象時,可以給它的age,name等屬性進行賦值,也可以將其他對象注入到User中,而這個方式也可以降低耦合度。
Aop(面向切面):以前我們都是面向對象方式來編程的,面向切面可能比較陌生。面向切面其實我們也運用過,例如filter,所有的請求都通過過濾器,這就是面向切面,下面這張圖可以很好幫助我們理解這個思想。
而spring中可以使用aop來進行事務管理,日志等操作
struts2:
我們在傳統開發時,要建立大量的servlet,不好更改,更不好管理,而使用struts2就是使用一個前端控制器來管理所有的請求,對于管理和處理請求非常的方便。
下面上兩張圖,對于理解原理很有幫助
Hibernate:
Hibernate是數據持久層的操作,也于傳統開發進行對比,原來在操作數據時需要寫大量的get和set方法獲取和更改數據,很是麻煩,而使用Hibernate可以完全使用對象的方式來操作,代碼簡潔高效便于開發。
Hibernate的原理基于數據的三大狀態,下面是在我博客上寫過的,截兩張圖說明一下原理。
然后就是Hibernate的一級緩存,這個也比較好理解,一級緩存就是將數據放入緩存區(內存),當我們兩次查詢同一條數據時,第二次就不會執行查詢語句,直接從緩存中調取,這就很大的提高了運行效率。
最后就是快照區,Hibernate內置一個快照區,當我們將數據存入一級緩存時,也會將數據存入快照區一份,當我們commit()提交事務時,快照區和一級緩存會進行比較,如果不同就會將數據更新。
不管是學框架還是學語言學底層結構對于理解很有幫助,如果對于這些原理不太能看懂的話可以先看看視頻寫一些demo學著用用,有了一定了解后再去剖析原理。