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的架包作為支撐才能跑起來。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31539957/viewspace-2168602/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- spring、springmvc、springboot、springcloud 之間的聯絡和區別SpringMVCSpring BootGCCloud
- springboot和springmvc的區別Spring BootSpringMVC
- springmvc和springboot的區別SpringMVCSpring Boot
- SpringMVC(3)-request域和session域的作用和區別SpringMVCSession
- 簡述Spring容器與SpringMVC的容器的聯絡與區別SpringMVC
- Spring MVC和Spring Boot的區別 - hackernoonMVCSpring Boot
- SpringMVC框架和Servlet開發有啥子區別(SpringMVC優勢)SpringMVC框架Servlet
- ssm springmvc springboot區別SSMSpringMVCSpring Boot
- Spring中@Component和@Configuration的區別Spring
- Spring中Filter和Interceptor的區別SpringFilter
- Spring框架和Spring boot有啥區別?框架Spring Boot
- Spring Cloud:Zookeeper和Eureka的區別在哪?SpringCloud
- Strust2和Spring MVC的區別RustSpringMVC
- MyBatis-06-Spring的SqlSession和原始區別MyBatisSpringSQLSession
- Spring set注入和構造注入的區別Spring
- SpringBoot和Spring有什麼區別?Spring Boot
- Spring和SpringBoot比較,解惑區別Spring Boot
- 【Java面試】Spring中 BeanFactory和FactoryBean的區別Java面試SpringBean
- Spring - 配置檔案中的classpath: 和 classpath*: 的區別Spring
- Spring | xx-servlet.xml 和 applicationContext.xml 的區別SpringServletXMLAPPContext
- ../和./和/的區別
- LinkedList和ArrayList的區別、Vector和ArrayList的區別
- http和https的區別/get和post的區別HTTP
- ||和??的區別
- /*和/**的區別
- spring和springmvc是單例還是多例SpringMVC單例
- Spring+SpringMVC+MyBatis的整合SpringMVCMyBatis
- spring boot與spring mvc的區別是什麼?Spring BootMVC
- Spring生態系統中的Reactor、WebFlux和RSocket區別? - FranciscoSpringReactWebUX
- Aliyun Java Initializr 和 Spring 官方的到底有什麼區別?JavaSpring
- [轉載] spring aop 環繞通知around和其他通知的區別Spring
- spring中的FactoryBean與ObjectFactory的區別SpringBeanObject
- makefile =和:=的區別
- ++a和a++的區別
- ./ 和sh 的區別
- jquery $(this) 和this的區別jQuery
- JQuery this和$(this)的區別jQuery
- T和?的區別