我們?yōu)槭裁匆獙W(xué)習(xí)Spring Boot?

Spring Boot是什么我們知道察蹲,從 2002 年開始催训,Spring 一直在飛速的發(fā)展,如今已經(jīng)成為了在Java EE(Java Enterprise Edition)開發(fā)中真正意義上的標(biāo)準(zhǔn)漫拭,但是隨著技術(shù)的發(fā)展,Java EE使用 Spring 逐漸變得笨重起來混稽,大量的 XML 文件存在于項目之中采驻。繁瑣的配置,整合第三方框架的配置問題匈勋,導(dǎo)致了開發(fā)和部署效率的降低礼旅。

2012 年 10 月,Mike Youngstrom 在 Spring jira 中創(chuàng)建了一個功能請求洽洁,要求在 Spring 框架中支持無容器 Web 應(yīng)用程序體系結(jié)構(gòu)痘系。他談到了在主容器引導(dǎo) spring 容器內(nèi)配置 Web 容器服務(wù)。

這是 jira 請求的摘錄:我認為 Spring 的 Web 應(yīng)用體系結(jié)構(gòu)可以大大簡化饿自,如果它提供了從上到下利用 Spring 組件和配置模型的工具和參考體系結(jié)構(gòu)汰翠。在簡單的 main()方法引導(dǎo)的 Spring 容器內(nèi)嵌入和統(tǒng)一這些常用Web 容器服務(wù)的配置。 這一要求促使了 2013 年初開始的 Spring Boot 項目的研發(fā)昭雌,到今天奴璃,Spring Boot 的版本已經(jīng)到了 2.0.3 RELEASE。

Spring Boot 并不是用來替代 Spring 的解決方案城豁,而是和 Spring 框架緊密結(jié)合用于提升 Spring 開發(fā)者體驗的工具苟穆。同時它集成了大量常用的第三方庫配置,Spring Boot應(yīng)用中這些第三方庫幾乎可以是零配置的開箱即用(out-of-the-box)唱星,大部分的 Spring Boot 應(yīng)用都只需要非常少量的配置代碼(基于 Java 的配置)雳旅,開發(fā)者能夠更加專注于業(yè)務(wù)邏輯。

?為什么學(xué)習(xí)Spring Boot從Spring

官方來看我們打開 Spring 的官方網(wǎng)站间聊,可以看到:官方對 Spring Boot 的定位:Build Anything攒盈, Build任何東西。Spring Boot旨在盡可能快地啟動和運行哎榴,并且只需最少的 Spring 前期配置型豁。 同時我們也來看一下官方對后面兩個的定位: SpringCloud:Coordinate Anything,協(xié)調(diào)任何事情尚蝌; SpringCloud Data Flow:Connect everything迎变,連接任何東西。仔細品味一下飘言,Spring 官網(wǎng)對 Spring Boot衣形、SpringCloud 和 SpringCloud Data Flow三者定位的措辭非常有味道,同時也可以看出姿鸿,Spring 官方對這三個技術(shù)非常重視谆吴,是現(xiàn)在以及今后學(xué)習(xí)的重點(SpringCloud 相關(guān)達人課課程屆時也會上線)倒源。

從Spring Boot的優(yōu)點來看Spring Boot 有哪些優(yōu)點?主要給我們解決了哪些問題呢句狼?我們以下圖來說明:Spring Boot的優(yōu)點良好的基因Spring Boot 是伴隨著 Spring 4.0 誕生的笋熬,從字面理解,Boot是引導(dǎo)的意思腻菇,因此 Spring Boot 旨在幫助開發(fā)者快速搭建 Spring 框架突诬。Spring Boot 繼承了原有 Spring 框架的優(yōu)秀基因,使 Spring 在使用中更加方便快捷芜繁。Spring Boot與Spring簡化編碼舉個例子旺隙,比如我們要創(chuàng)建一個 web 項目骏令,使用 Spring 的朋友都知道,在使用 Spring 的時候周拐,需要在 pom 文件中添加多個依賴凰兑,而 Spring Boot 則會幫助開發(fā)著快速啟動一個 web 容器,在 Spring Boot 中勾给,我們只需要在 pom 文件中添加如下一個 starter-web 依賴即可播急。

學(xué)習(xí)群? 64弍46衣3凌9桩警,資料群 69似64陸0吧3

org.springframework.bootspring-boot-starter-web我們點擊進入該依賴后可以看到捶枢,Spring Boot 這個 starter-web 已經(jīng)包含了多個依賴飞崖,包括之前在 Spring 工程中需要導(dǎo)入的依賴,我們看一下其中的一部分长已,如下:org.springframeworkspring-eb5.0.7.RELEASEcompileorg.springframeworkspring-webmvc5.0.7.RELEASEcompile由此可以看出术瓮,Spring Boot 大大簡化了我們的編碼贰健,我們不用一個個導(dǎo)入依賴辜伟,直接一個依賴即可导狡。簡化配置Spring 雖然使Java EE輕量級框架旱捧,但由于其繁瑣的配置踩麦,一度被人認為是“配置地獄”。各種XML贫橙、Annotation配置會讓人眼花繚亂卢肃,而且配置多的話,如果出錯了也很難找出原因践剂。Spring Boot更多的是采用 Java Config 的方式逊脯,對 Spring 進行配置竣贪。

舉個例子:我新建一個類,但是我不用 @Service注解演怎,也就是說甘桑,它是個普通的類,那么我們?nèi)绾问顾渤蔀橐粋€ Bean 讓 Spring 去管理呢?只需要@Configuration 和@Bean兩個注解即可德谅,如下:

public class TestService

{ public String sayHello ()

{ return "Hello Spring Boot!"; }}

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

@Configurationpublic class JavaConfig {

?? @Bean public TestService getTestService()

?{ return new TestService(); }}

@Configuration表示該類是個配置類窄做,@Bean表示該方法返回一個 Bean组砚。這樣就把TestService作為 Bean 讓 Spring 去管理了掏颊,在其他地方蚯舱,我們?nèi)绻枰褂迷?Bean,和原來一樣陈肛,直接使用@Resource注解注入進來即可使用句旱,非常方便谈撒。@Resourceprivate TestService testService;另外匾南,部署配置方面蛆楞,原來 Spring 有多個 xml 和 properties配置豹爹,在 Spring Boot 中只需要個 application.yml即可。

簡化部署在使用 Spring 時光稼,項目部署時需要我們在服務(wù)器上部署 tomcat艾君,然后把項目打成 war 包扔到 tomcat里,在使用 Spring Boot 后吁恍,我們不需要在服務(wù)器上去部署 tomcat播演,因為 Spring Boot 內(nèi)嵌了 tomcat,我們只需要將項目打成 jar 包拾徙,使用 java -jar xxx.jar一鍵式啟動項目。另外,也降低對運行環(huán)境的基本要求崖瞭,環(huán)境變量中有JDK即可书聚。簡化監(jiān)控我們可以引入 spring-boot-start-actuator 依賴雌续,直接使用 REST 方式來獲取進程的運行期性能參數(shù),從而達到監(jiān)控的目的驯杜,比較方便滚局。

但是 Spring Boot 只是個微框架再悼,沒有提供相應(yīng)的服務(wù)發(fā)現(xiàn)與注冊的配套功能冲九,沒有外圍監(jiān)控集成方案跟束,沒有外圍安全管理方案,所以在微服務(wù)架構(gòu)中略贮,還需要 Spring Cloud 來配合一起使用逃延。從未來發(fā)展的趨勢來看微服務(wù)是未來發(fā)展的趨勢轧拄,項目會從傳統(tǒng)架構(gòu)慢慢轉(zhuǎn)向微服務(wù)架構(gòu),因為微服務(wù)可以使不同的團隊專注于更小范圍的工作職責(zé)、使用獨立的技術(shù)俐末、更安全更頻繁地部署卓箫。而 繼承了 Spring 的優(yōu)良特性丽柿,與 Spring 一脈相承甫题,而且 支持各種REST API 的實現(xiàn)方式坠非。Spring Boot 也是官方大力推薦的技術(shù)炎码,可以看出攒菠,Spring Boot 是未來發(fā)展的一個大趨勢

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末歉闰,一起剝皮案震驚了整個濱河市凹炸,隨后出現(xiàn)的幾起案子啤它,更是在濱河造成了極大的恐慌,老刑警劉巖离赫,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件笆怠,死亡現(xiàn)場離奇詭異誊爹,居然都是意外死亡,警方通過查閱死者的電腦和手機泡态,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門桐汤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來怔毛,“玉大人腾降,你說我怎么就攤上這事抗果。” “怎么了?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵逮光,是天一觀的道長。 經(jīng)常有香客問我,道長副女,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任沟涨,我火速辦了婚禮裹赴,結(jié)果婚禮上延都,老公的妹妹穿的比我還像新娘睛竣。我一直安慰自己射沟,他們只是感情好验夯,可當(dāng)我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著簿姨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪扁位。 梳的紋絲不亂的頭發(fā)上准潭,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天域仇,我揣著相機與錄音刑然,去河邊找鬼暇务。 笑死泼掠,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的择镇。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼腻豌,長吁一口氣:“原來是場噩夢啊……” “哼家坎!你這毒婦竟也來了吝梅?” 一聲冷哼從身側(cè)響起虱疏,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎矛物,沒想到半個月后峦萎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡唇聘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年表制,在試婚紗的時候發(fā)現(xiàn)自己被綠了娜遵。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸽扁。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡相赁,死狀恐怖婆赠,靈堂內(nèi)的尸體忽然破棺而出休里,到底是詐尸還是另有隱情,我是刑警寧澤可免,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站恢总,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏光督。R本人自食惡果不足惜筐摘,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸替蔬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽沃饶。三九已至糊肤,卻和暖如春业舍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背诸狭。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工叉庐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像鹉梨,于是被迫代替她去往敵國和親骤菠。 傳聞我的和親對象是個殘疾皇子疤孕,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,803評論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理赢底,服務(wù)發(fā)現(xiàn)颖系,斷路器,智...
    卡卡羅2017閱讀 134,651評論 18 139
  • 1.1 spring IoC容器和beans的簡介 Spring 框架的最核心基礎(chǔ)的功能是IoC(控制反轉(zhuǎn))容器访娶,...
    simoscode閱讀 6,713評論 2 22
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong閱讀 22,394評論 1 92
  • 入門 介紹 Spring Boot Spring Boot 使您可以輕松地創(chuàng)建獨立的、生產(chǎn)級的基于 Spring ...
    Hsinwong閱讀 16,881評論 2 89