spring和springmvc的區別

spring 是一個開源框架,是爲了解決企業應用程序開發,功能如下

◆目的:解決企業應用開發的複雜性

◆功能:使用基本的JavaBean代替EJB,並提供了更多的企業應用功能

◆範圍:任何Java應用

簡單來說,Spring是一個輕量級的控制反轉(IoC)和麪向切面(AOP)的容器框架。

◆輕量——從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個大小隻有1MB多的JAR文件裏發佈。並且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應用中的對象不依賴於Spring的特定類。

◆控制反轉——Spring通過一種稱作控制反轉(IoC)的技術促進了鬆耦合。當應用了IoC,一個對象依賴的其它對象會通過被動的方式傳遞進來,而不是這個對象自己創建或者查找依賴對象。你可以認爲IoC與JNDI相反——不是對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它。

◆面向切面——Spring提供了面向切面編程的豐富支持,允許通過分離應用的業務邏輯與系統級服務(例如審計(auditing)和事務(transaction)管理)進行內聚性的開發。應用對象只實現它們應該做的——完成業務邏輯——僅此而已。它們並不負責(甚至是意識)其它的系統級關注點,例如日誌或事務支持。

◆容器——Spring包含並管理應用對象的配置和生命週期,在這個意義上它是一種容器,你可以配置你的每個bean如何被創建——基於一個可配置原型(prototype),你的bean可以創建一個單獨的實例或者每次需要時都生成一個新的實例——以及它們是如何相互關聯的。然而,Spring不應該被混同於傳統的重量級的EJB容器,它們經常是龐大與笨重的,難以使用。

◆框架——Spring可以將簡單的組件配置、組合成爲複雜的應用。在Spring中,應用對象被聲明式地組合,典型地是在一個XML文件裏。Spring也提供了很多基礎功能(事務管理、持久化框架集成等等),將應用邏輯的開發留給了你。

所有Spring的這些特徵使你能夠編寫更乾淨、更可管理、並且更易於測試的代碼。它們也爲Spring中的各種模塊提供了基礎支持。

Spring的兩大核心AOP與IOC,可以單獨用於任何應用,包括與Struts等MVC框架與Hibernate等ORM框架的集成,目前很多公司所謂的輕量級開發就是用 Spring + Struts(2)+Hibernate。

Spring MVC就是一個MVC框架,個人覺得Spring MVC annotation式的開發比Struts2方便,可以直接代替上面的Struts(當然Struts的做爲一個非常成熟的MVC,功能上感覺還是比Spring強一點,不過Spring MVC已經足夠用了)。當然spring mvc的執行效率比struts高,是因爲struts的值棧影響效率

spring mvc類似於struts的一個MVC開框架,其實都是屬於spring,spring mvc需要有spring的架包作爲支撐才能跑起來

如果有人問你什麼事控制反轉(spring的核心面試常問道):你就回答,本來程序是由我們new 出來的嘛,後來交給程序控制進行new出來了嘛,這就是控制反轉嘛,打了那麼多手都麻了,看在我那麼辛苦的份上給分吧

源碼來源:http://minglisoft.cn/technology 歡迎大家一起學習研究相關技術,源碼獲取請加求求(企鵝): 2042849237

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章