更新時(shí)間:2020-03-12 09:29:14 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2555次
學(xué)習(xí)Java的人對(duì)其三大框架都不會(huì)陌生,這三大框架也就是Struts+Hibernate+Spring,主要用來做Web應(yīng)用。但是在初學(xué)者看來,它們也被賦予了太多神秘的色彩,究竟要不要重點(diǎn)學(xué)還是存在很多的爭議。

一、spring
我們知道企業(yè)開發(fā)面臨著一個(gè)讓所有程序員都非常頭疼的問題,那就是需求的不斷變動(dòng),導(dǎo)致系統(tǒng)不停的修改。其中接口可以一定成度的解決服務(wù)間耦合度過高的問題,但是依然無法完全解耦。就比如說一個(gè)類A依賴于服務(wù)S,S的服務(wù)實(shí)現(xiàn)有s1,那么在A類中使用服務(wù)S時(shí)必然會(huì)有news1的操作,這就出現(xiàn)了強(qiáng)耦合,假如S的服務(wù)實(shí)現(xiàn)有變化,需要改為s2,這個(gè)時(shí)候就需要修改類A里面的代碼,這明顯是不合理的。為什么不合理可以舉個(gè)例子:電腦使用U盤1存儲(chǔ)數(shù)據(jù)和使用U盤2存儲(chǔ)數(shù)據(jù),在更換不同的U盤時(shí)是不需要修改電腦硬件的。為了解決這個(gè)強(qiáng)耦合問題,spring出現(xiàn)了,spring通過XML配置文件來描述類之間的依賴關(guān)系,這里面配置文件只有類名之間的關(guān)系,運(yùn)行時(shí)是需要?jiǎng)?chuàng)建類的實(shí)例的,所以spring是基于反射機(jī)制的。使用spring之后之前的問題中,類A就不會(huì)再去new服務(wù)S的實(shí)現(xiàn)了,而是將類A依賴的服務(wù)配置到XML中,由spring去管理類之間的依賴(由人控制轉(zhuǎn)為系統(tǒng)控制,這也就是為什么說spring的技術(shù)核心是控制反轉(zhuǎn)),這樣之前的問題就完美解決了,服務(wù)S的實(shí)現(xiàn)變更了無非就是修改XML配置文件罷了,不需要到處去找new了s1的類。由于類A依賴的服務(wù)S的實(shí)現(xiàn)由spring控制,這樣就可以做一些比較有趣的事情,比如說AOP,spring完全可以在獲取s1的實(shí)例的時(shí)候生成s1類實(shí)例的代理類(通過ASM或CGLIB或著依賴于ASM的javassist或著java自帶的動(dòng)態(tài)代理),這樣就可以實(shí)現(xiàn)對(duì)s1的方法級(jí)的調(diào)用“攔截”。因?yàn)閟pring的這種強(qiáng)大的解耦性,所以spring可以和任何一個(gè)框架進(jìn)行完美集成。
二、Hibernate(我這里簡稱H)
java里面一切都是對(duì)象,在和數(shù)據(jù)庫打交道時(shí)就不是那么“對(duì)象”了,往往數(shù)據(jù)庫中的table和java里面的entity是有一個(gè)對(duì)應(yīng)關(guān)系的,但是在將java的一個(gè)entity保存到數(shù)據(jù)庫對(duì)應(yīng)的表,這就需要一個(gè)將entity轉(zhuǎn)換成sql的過程,這個(gè)過程是很繁雜而且易出錯(cuò),于是有了Hibernate,使用H保存數(shù)據(jù)變得如此容易,H通過配置文件來描述類和表的映射關(guān)系,連類里面那種多對(duì)多和一對(duì)多等等關(guān)系都可以實(shí)現(xiàn)自動(dòng)生成對(duì)多表的更新操作。但是H在做數(shù)據(jù)查詢時(shí)就不是那么愉快了,往往我們只需要查詢幾個(gè)字段的時(shí)候,H查出來的會(huì)是一大坨的數(shù)據(jù),所以H不是特別適合做企業(yè)項(xiàng)目,但是H非常適合做不同數(shù)據(jù)庫間的同步。
三、struts
早起ajax技術(shù)沒有出現(xiàn)的時(shí)候,前端向后臺(tái)提交數(shù)據(jù)都是通過表單的,表單和java對(duì)象的互相轉(zhuǎn)換問題也讓很多程序員頭疼不已,struts的出現(xiàn)解決了表單和java對(duì)象的互相轉(zhuǎn)換問題,還有前端jsp的頁面布局問題,訪問等。在springmvc沒有出現(xiàn)之前SSH算是一個(gè)比較完美的框架組合,但是由于H的坑,很多人轉(zhuǎn)向了SSM,或者直接就是Springmvc+mybatis。

以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“Java三大框架視頻教程下載”的內(nèi)容,希望對(duì)大家有幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)