Spring-Spring、SpringMVC與SpringBoot三者的關(guān)系

Spring與SpringMVC的區(qū)別

總體架構(gòu)
Spring

總的來說Spring是使用基本的JavaBean代替EJB,通過容器管理JavaBean的配置和聲明周期,在此基礎(chǔ)上實(shí)現(xiàn)了AOP、IOC的Spring核心功能,其他web框架組件在AOP、IOC的基礎(chǔ)上工作,將JavaBean交給Spring來管理。簡單來說,Spring是一個輕量級的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。

特點(diǎn):

  • 目的:解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性
  • 功能:使用基本的JavaBean代替EJB,并提供了更多的企業(yè)應(yīng)用功能
  • 范圍:任何Java應(yīng)用
  • 輕量:從大小與開銷兩方面而言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
  1. 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的值棧影響效率

  2. Spring MVC類似于struts的一個MVC開框架,其實(shí)都是屬于Spring,Spring MVC需要有Spring的架包作為支撐才能跑起來。

  3. Spring可以說是一個管理bean的容器,也可以說是包括很多開源項(xiàng)目的總稱,spring mvc是其中一個開源項(xiàng)目,所以簡單走個流程的話,http請求一到,由容器(如:tomact)解析http搞成一個request,通過映射關(guān)系(路徑,方法,參數(shù)?。┍籹pring mvc一個分發(fā)器去找到可以處理這個請求的bean,那tomcat里面就由spring管理bean的一個池子(bean容器)里面找到,處理完了就把響應(yīng)返回回去。

Spring與Spring Boot的區(qū)別

Spring Boot不是一門新技術(shù)。從本質(zhì)上來說,Spring Boot就是Spring,它做了一些對Spring Bean的默認(rèn)配置。

Spring Boot的理念

核心理念:開箱即用,快速啟動

它使用“習(xí)慣優(yōu)于配置”(項(xiàng)目中存在大量的配置,此外還內(nèi)置了一個習(xí)慣性的配置,讓你無需手動進(jìn)行配置)的理念讓你的項(xiàng)目快速運(yùn)行起來。使用Spring Boot很容易創(chuàng)建一個獨(dú)立運(yùn)行(運(yùn)行jar,內(nèi)嵌Servlet容器)、準(zhǔn)生產(chǎn)級別的基于Spring框架的項(xiàng)目,使用Spring Boot你可以不用或者只需要很少的Spring配置。

Spring Boot 帶來的方便之處
  1. 自動配置:針對很多Spring應(yīng)用程序常見的應(yīng)用功能,Spring Boot能自動提供相關(guān)配置

  2. 起步依賴:告訴Spring Boot需要什么功能,它就能引入需要的庫。

  3. 命令行界面:這是Spring Boot的可選特性,借此你只需寫代碼就能完成完整的應(yīng)用程序,無需傳統(tǒng)項(xiàng)目構(gòu)建。

  4. Actuator:讓你能夠深入運(yùn)行中的Spring Boot應(yīng)用程序,一套究竟。

一些網(wǎng)上的教程
http://m.itdecent.cn/p/48387d502673
http://m.itdecent.cn/p/5ced51e632a1
多數(shù)據(jù)源配置
http://blog.didispace.com/springbootmultidatasource/
http://blog.csdn.net/ba5189tsl/article/details/47277737

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,695評論 19 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,288評論 6 342
  • (一)Struts、Spring、Hibernate、Mybatis框技術(shù) 1.Struts2.0有幾種標(biāo)簽庫 【...
    獨(dú)云閱讀 3,381評論 0 62
  • 什么是Spring Spring是一個開源的Java EE開發(fā)框架。Spring框架的核心功能可以應(yīng)用在任何Jav...
    jemmm閱讀 16,785評論 1 133
  • 從北京回來,本來覺得可能會在北京賓館寫點(diǎn)什么的,但未能如愿,還是把筆記本原樣背回來了。 在集體中對如何自由建立自己...
    大白咚閱讀 296評論 0 1

友情鏈接更多精彩內(nèi)容