spring 是是一個開源框架且轨,是為了解決企業(yè)應(yīng)用程序開發(fā)酒甸,功能如下
◆目的:解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性
◆功能:使用基本的JavaBean代替EJB魄健,并提供了更多的企業(yè)應(yīng)用功能
◆范圍:任何Java應(yīng)用簡單來說,Spring是一個輕量級的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架插勤。
◆輕量——從大小與開銷兩方面而言Spring都是輕量的沽瘦。完整的Spring框架可以在一個大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開銷也是微不足道的农尖。此外析恋,Spring是非侵入式的:典型地,Spring應(yīng)用中的對象不依賴于Spring的特定類盛卡。
◆控制反轉(zhuǎn)——Spring通過一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了松耦合助隧。當(dāng)應(yīng)用了IoC,一個對象依賴的其它對象會通過被動的方式傳遞進(jìn)來滑沧,而不是這個對象自己創(chuàng)建或者查找依賴對象并村。你可以認(rèn)為IoC與JNDI相反——不是對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它滓技。
◆面向切面——Spring提供了面向切面編程的豐富支持橘霎,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級服務(wù)(例如審計(auditing)和事務(wù)(transaction)管理)進(jìn)行內(nèi)聚性的開發(fā)。應(yīng)用對象只實(shí)現(xiàn)它們應(yīng)該做的——完成業(yè)務(wù)邏輯——僅此而已殖属。它們并不負(fù)責(zé)(甚至是意識)其它的系統(tǒng)級關(guān)注點(diǎn)姐叁,例如日志或事務(wù)支持。
◆容器——Spring包含并管理應(yīng)用對象的配置和生命周期洗显,在這個意義上它是一種容器外潜,你可以配置你的每個bean如何被創(chuàng)建——基于一個可配置原型(prototype),你的bean可以創(chuàng)建一個單獨(dú)的實(shí)例或者每次需要時都生成一個新的實(shí)例——以及它們是如何相互關(guān)聯(lián)的挠唆。然而处窥,Spring不應(yīng)該被混同于傳統(tǒng)的重量級的EJB容器,它們經(jīng)常是龐大與笨重的玄组,難以使用滔驾。
◆框架——Spring可以將簡單的組件配置、組合成為復(fù)雜的應(yīng)用俄讹。在Spring中哆致,應(yīng)用對象被聲明式地組合,典型地是在一個XML文件里患膛。Spring也提供了很多基礎(chǔ)功能(事務(wù)管理摊阀、持久化框架集成等等),將應(yīng)用邏輯的開發(fā)留給了你。
所有Spring的這些特征使你能夠編寫更干凈胞此、更可管理臣咖、并且更易于測試的代碼。它們也為Spring中的各種模塊提供了基礎(chǔ)支持漱牵。
Spring的兩大核心AOP與IOC夺蛇,可以單獨(dú)用于任何應(yīng)用,包括與Struts等MVC框架與Hibernate等ORM框架的集成酣胀,目前很多公司所謂的輕量級開發(fā)就是用 Spring + Struts(2)+Hibernate蚊惯。
Spring MVC就是一個MVC框架,個人覺得Spring MVC annotation式的開發(fā)比Struts2方便灵临,可以直接代替上面的Struts(當(dāng)然Struts的做為一個非常成熟的MVC截型,功能上感覺還是比Spring強(qiáng)一點(diǎn),不過Spring MVC已經(jīng)足夠用了)儒溉。當(dāng)然spring mvc的執(zhí)行效率比struts高宦焦,是因?yàn)閟truts的值棧影響效率
spring mvc類似于struts的一個MVC開框架,其實(shí)都是屬于spring顿涣,spring mvc需要有spring的架包作為支撐才能跑起來
1波闹、ssh中的spring充當(dāng)?shù)氖荕VC中的Model的職能,他也可以集成hibernate等涛碑,但它不提供hibernate的功能精堕,僅為集成。
2蒲障、Spring MVC是MVC架構(gòu)的整體實(shí)現(xiàn)歹篓,包括了MVC三項(xiàng)框架,有了它你就不需要再去集成struts和hibernate了揉阎,都是由它自己提供庄撮。
----整理自網(wǎng)絡(luò)