spring

一蚯瞧、spring 的作用:

在SSH框假中spring充當(dāng)了管理容器的角色检柬。我們都知道Hibernate用來做持久層白筹,因

為它將JDBC做了一個(gè)良好的封裝带兜,程序員在與數(shù)據(jù)庫進(jìn)行交互時(shí)可以不用書寫大量的SQL語

句。Struts是用來做應(yīng)用層的,他它負(fù)責(zé)調(diào)用業(yè)務(wù)邏輯serivce層沛厨。所以SSH框架的流程大致

是:Jsp頁面----Struts------Service(業(yè)務(wù)邏輯處理類)---Hibernate(左到右)struts

負(fù)責(zé)控制Service(業(yè)務(wù)邏輯處理類)宙地,從而控制了Service的生命周期,這樣層與層之間的

依賴和強(qiáng)逆皮,屬于耦合宅粥。這時(shí),使用spring框架就起到了控制Action對象(Strus中的)和

Service類的作用电谣,兩者之間的關(guān)系就松散了秽梅,Spring的Ioc機(jī)制(控制反轉(zhuǎn)和依賴注入)正

是用在此處。

Spring的Ioc(控制反轉(zhuǎn)和依賴注入)

控制反轉(zhuǎn):就是由容器控制程序之間的(依賴)關(guān)系剿牺,而非傳統(tǒng)實(shí)現(xiàn)中风纠,由程序代碼直

接操控。

依賴注入:組件之間的依賴關(guān)系由容器在運(yùn)行期決定 牢贸,由容器動態(tài)的將某種依賴關(guān)系注

入到組件之中。

從上面我們不難看出:從頭到尾Action僅僅是充當(dāng)了Service的控制工具镐捧,這些具體的

業(yè)務(wù)方法是怎樣實(shí)現(xiàn)的潜索,他根本就不會管,也不會問懂酱,他只要知道這些業(yè)務(wù)實(shí)現(xiàn)類所提供的

方法接口就可以了竹习。而在以往單獨(dú)使用Struts框架的時(shí)候,所有的業(yè)務(wù)方法類的生命周期列牺,

甚至是一些業(yè)務(wù)流程都是由Action來控制的整陌。層與層之間耦合性太緊密了,既降低了數(shù)據(jù)訪

問的效率又使業(yè)務(wù)邏輯看起來很復(fù)雜瞎领,代碼量也很多泌辫。,Spring容器控制所有Action對象和

業(yè)務(wù)邏輯類的生命周期九默,由與上層不再控制下層的生命周期震放,層與層之間實(shí)現(xiàn)了完全脫耦,

使程序運(yùn)行起來效率更高驼修,維護(hù)起來也方便。

使用Spring的第二個(gè)好處(AOP應(yīng)用):

事務(wù)的處理:

在以往的JDBCTemplate中事務(wù)提交成功乙各,異常處理都是通過Try/Catch 來完成墨礁,而在

Spring中。Spring容器集成了TransactionTemplate耳峦,她封裝了所有對事務(wù)處理的功能恩静,

包括異常時(shí)事務(wù)回滾,操作成功時(shí)數(shù)據(jù)提交等復(fù)雜業(yè)務(wù)功能蹲坷。這都是由Spring容器來管理蜕企,

大大減少了程序員的代碼量疹味,也對事務(wù)有了很好的管理控制齿诉。Hibernate中也有對事務(wù)的管

理,hibernate中事務(wù)管理是通過SessionFactory創(chuàng)建和維護(hù)Session來完成。而Spring對

SessionFactory配置也進(jìn)行了整合嬉橙,不需要在通過hibernate.cfg.xml來對

SessionaFactory進(jìn)行設(shè)定。這樣的話就可以很好的利用Sping對事務(wù)管理強(qiáng)大功能风范。避免

了每次對數(shù)據(jù)操作都要現(xiàn)獲得Session實(shí)例來啟動事務(wù)/提交/回滾事務(wù)還有繁瑣的

Try/Catch操作抵屿。這些也就是Spring中的AOP(面向切面編程)機(jī)制很好的應(yīng)用。一方面使

開發(fā)業(yè)務(wù)邏輯更清晰丐重、專業(yè)分工更加容易進(jìn)行腔召。另一方面就是應(yīng)用Spirng? AOP隔離降低了

程序的耦合性使我們可以在不同的應(yīng)用中將各個(gè)切面結(jié)合起來使用大大提高了代碼重用度。


Spring 7大功能模塊的作用[轉(zhuǎn)]


核心容器(Spring core)

核心容器提供Spring框架的基本功能扮惦。Spring以bean的方式組織和管理Java應(yīng)用中的各個(gè)組件及其關(guān)系臀蛛。Spring使用BeanFactory來產(chǎn)生和管理Bean,它是工廠模式的實(shí)現(xiàn)崖蜜。BeanFactory使用控制反轉(zhuǎn)(IoC)模式將應(yīng)用的配置和依賴性規(guī)范與實(shí)際的應(yīng)用程序代碼分開浊仆。BeanFactory使用依賴注入的方式提供給組件依賴。

Spring上下文(Spring context)

Spring上下文是一個(gè)配置文件豫领,向Spring框架提供上下文信息抡柿。Spring上下文包括企業(yè)服務(wù),如JNDI等恐、EJB洲劣、電子郵件、國際化课蔬、校驗(yàn)和調(diào)度功能囱稽。

Spring面向切面編程(Spring AOP)

通過配置管理特性,Spring AOP 模塊直接將面向方面的編程功能集成到了 Spring框架中二跋。所以粗悯,可以很容易地使 Spring框架管理的任何對象支持 AOP。Spring AOP 模塊為基于 Spring 的應(yīng)用程序中的對象提供了事務(wù)管理服務(wù)同欠。通過使用 Spring AOP样傍,不用依賴 EJB 組件,就可以將聲明性事務(wù)管理集成到應(yīng)用程序中铺遂。

Spring DAO模塊

DAO模式主要目的是將持久層相關(guān)問題與一般的的業(yè)務(wù)規(guī)則和工作流隔離開來衫哥。Spring 中的DAO提供一致的方式訪問數(shù)據(jù)庫,不管采用何種持久化技術(shù)襟锐,Spring都提供一直的編程模型撤逢。Spring還對不同的持久層技術(shù)提供一致的DAO方式的異常層次結(jié)構(gòu)。

Spring ORM模塊

Spring 與所有的主要的ORM映射框架都集成的很好,包括Hibernate蚊荣、JDO實(shí)現(xiàn)初狰、TopLink和IBatis SQL Map等。Spring為所有的這些框架提供了模板之類的輔助類互例,達(dá)成了一致的編程風(fēng)格奢入。

Spring Web模塊

Web上下文模塊建立在應(yīng)用程序上下文模塊之上,為基于Web的應(yīng)用程序提供了上下文媳叨。Web層使用Web層框架腥光,可選的,可以是Spring自己的MVC框架糊秆,或者提供的Web框架武福,如Struts、Webwork痘番、tapestry和jsf捉片。

Spring MVC框架(Spring WebMVC)

MVC框架是一個(gè)全功能的構(gòu)建Web應(yīng)用程序的MVC實(shí)現(xiàn)。通過策略接口汞舱,MVC框架變成為高度可配置的伍纫。Spring的MVC框架提供清晰的角色劃分:控制器、驗(yàn)證器兵拢、命令對象、表單對象和模型對象逾礁、分發(fā)器说铃、處理器映射和視圖解析器。Spring支持多種視圖技術(shù)嘹履。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末腻扇,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子砾嫉,更是在濱河造成了極大的恐慌幼苛,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件焕刮,死亡現(xiàn)場離奇詭異舶沿,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)配并,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進(jìn)店門括荡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人溉旋,你說我怎么就攤上這事畸冲。” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵邑闲,是天一觀的道長算行。 經(jīng)常有香客問我,道長苫耸,這世上最難降的妖魔是什么州邢? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮鲸阔,結(jié)果婚禮上偷霉,老公的妹妹穿的比我還像新娘。我一直安慰自己褐筛,他們只是感情好类少,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著渔扎,像睡著了一般硫狞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上晃痴,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天残吩,我揣著相機(jī)與錄音,去河邊找鬼倘核。 笑死泣侮,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的紧唱。 我是一名探鬼主播活尊,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼漏益!你這毒婦竟也來了蛹锰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤绰疤,失蹤者是張志新(化名)和其女友劉穎铜犬,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體轻庆,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡癣猾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了余爆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片煎谍。...
    茶點(diǎn)故事閱讀 40,015評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖龙屉,靈堂內(nèi)的尸體忽然破棺而出呐粘,到底是詐尸還是另有隱情满俗,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布作岖,位于F島的核電站唆垃,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏痘儡。R本人自食惡果不足惜辕万,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望沉删。 院中可真熱鬧渐尿,春花似錦、人聲如沸矾瑰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽殴穴。三九已至凉夯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間采幌,已是汗流浹背劲够。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留休傍,地道東北人征绎。 一個(gè)月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像磨取,于是被迫代替她去往敵國和親人柿。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內(nèi)容