spring和springmvc的區別

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

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

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

◆範圍:任何Java應用框架

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

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

◆控制反轉——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的架包做爲支撐才能跑起來。

相關文章
相關標籤/搜索