spring?boot入門(mén)之誕生背景及優(yōu)勢(shì)影響
spring boot誕生的背景
在spring boot出現(xiàn)以前,使用spring框架的程序員是這樣配置web應(yīng)用環(huán)境的,需要大量的xml配置。下圖展示了在xml配置的時(shí)代和SpringBoot的配置量的差別。
- 隨著web項(xiàng)目集成軟件的不斷增多,xml配置也不斷的增多,xml配置文件也在不斷地增多,項(xiàng)目的依賴管理也越發(fā)的復(fù)雜。spring框架也因此飽受爭(zhēng)議,配置文件難以理解且容易出錯(cuò)。
- xml配置文件不但復(fù)雜,而且絕大部分屬于模板配置,也就是說(shuō)有80%以上的配置是不斷重復(fù)的。在這個(gè)web項(xiàng)目里面這樣配置,挪到另一個(gè)項(xiàng)目里面這部分配置仍然相同。
因此,像JFinal這種輕量級(jí)的web開(kāi)發(fā)框架,因?yàn)槠浜?jiǎn)單易用的特性,而逐漸的有了很大發(fā)展的空間。Spring社區(qū)也逐漸意識(shí)到了這個(gè)問(wèn)題,在 2013 年的 SpringOne 2GX 會(huì)議上,Pivotal 的 CTO Adrian Colyer 回應(yīng)了關(guān)于spring框架使用復(fù)雜度的問(wèn)題,并且特別提到該平臺(tái)將來(lái)的目標(biāo)之一就是實(shí)現(xiàn)免 XML 配置和提供更佳開(kāi)發(fā)體驗(yàn)。也就是我們今天使用到的spring boot的誕生的主要原因。
Spring 開(kāi)源社區(qū)背后有強(qiáng)大的商業(yè)公司支持,目前已知的支持力度比較大的公司就是Pivotal 、netflix以及中國(guó)的阿里巴巴。
spring boot 改變了什么
舉一個(gè)例子:自己接電線與標(biāo)準(zhǔn)化插座
Spring Boot的配置方式,就像是插頭插座,就是這個(gè)標(biāo)準(zhǔn)。你第三方開(kāi)源類(lèi)庫(kù)想接入進(jìn)來(lái),你就按照這個(gè)標(biāo)準(zhǔn)做一個(gè)starter的適配。spring MVC方式就像是手動(dòng)接電線,很靈活,但是不同的人接出來(lái)的效果千差萬(wàn)別,而且很容易出錯(cuò)。Spring boot雖然靈活性不如Spring MVC的方式,并且你也不太清楚插座里面的線路是什么樣,但就是方便易用。話說(shuō)回來(lái),當(dāng)你習(xí)慣使用插頭插座,你還期望自己是個(gè)電工不成?
Spring Boot 的目標(biāo)不在于為已解決的問(wèn)題領(lǐng)域提供新的解決方案,而是為平臺(tái)帶來(lái)另一種新的開(kāi)發(fā)體驗(yàn),從而簡(jiǎn)化對(duì)這些已有技術(shù)的使用。
- 使配置變簡(jiǎn)單
- 使監(jiān)控變簡(jiǎn)單
- 使部署變簡(jiǎn)單
- 使開(kāi)發(fā)變簡(jiǎn)單
具體這些改變?nèi)绾蔚靡泽w現(xiàn),請(qǐng)學(xué)習(xí)后面的章節(jié)!
Spring Boot主要特性
- 遵循“約定優(yōu)于配置”的原則,簡(jiǎn)化配置
- 可以完全脫離XML配置文件,采用注解配置和java Config
- 內(nèi)嵌Servlet容器,應(yīng)用可用jar包執(zhí)行:java -jar
- 快速完成項(xiàng)目搭建、整合第三方類(lèi)庫(kù),方便易用
- 提供了starter POM, 能夠非常方便的進(jìn)行包管理, 簡(jiǎn)化包管理配置
- 與Spring cloud天然集成,spring boot是目前java體系內(nèi)實(shí)現(xiàn)微服務(wù)最佳方案
Spring Boot集成第三方類(lèi)庫(kù)的步驟
- 通過(guò)maven引入springboot-XXXX-starter
- 修改ymal或properties全局統(tǒng)一配置文件
- 加入一個(gè)Java Config。這個(gè)屬于個(gè)性化配置,如果使用通用配置,這一步不需要。
官方默認(rèn)集成類(lèi)庫(kù)請(qǐng)參考:
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using.build-systems.starters
以上就是spring boot誕生背景及優(yōu)勢(shì)影響的詳細(xì)內(nèi)容,更多關(guān)于spring boot誕生影響的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
java實(shí)時(shí)監(jiān)控文件行尾內(nèi)容的實(shí)現(xiàn)
這篇文章主要介紹了java實(shí)時(shí)監(jiān)控文件行尾內(nèi)容的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02淺析Java迭代器Iterator和Iterable的區(qū)別
Java語(yǔ)言中,Iterator和Iterable都是用來(lái)遍歷集合類(lèi)數(shù)據(jù)結(jié)構(gòu)的接口,雖然它們有很多相似的地方,但在具體實(shí)現(xiàn)中卻有著一些不同之處,本文將詳細(xì)分析它們的區(qū)別,并提供相應(yīng)的代碼示例,需要的朋友可以參考下2023-07-07java?fastjson傳輸long數(shù)據(jù)卻接收到了int的問(wèn)題
這篇文章主要介紹了java?fastjson傳輸long數(shù)據(jù)卻接收到了int的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01解決Springboot項(xiàng)目啟動(dòng)后自動(dòng)創(chuàng)建多表關(guān)聯(lián)的數(shù)據(jù)庫(kù)與表的方案
這篇文章主要介紹了解決Springboot項(xiàng)目啟動(dòng)后自動(dòng)創(chuàng)建多表關(guān)聯(lián)的數(shù)據(jù)庫(kù)與表的方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03Java超級(jí)實(shí)用的Freemarker工具類(lèi)
這篇文章主要介紹了Java超級(jí)實(shí)用的Freemarker工具類(lèi),文章圍繞相關(guān)資料介紹以及代碼描述非常詳細(xì),需要的小伙伴可以參考一下,希望對(duì)你得學(xué)習(xí)有所幫助2022-02-02java 動(dòng)態(tài)增加定時(shí)任務(wù)示例
本篇文章主要介紹了java 動(dòng)態(tài)增加定時(shí)任務(wù)示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(34)
下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)的幾道練習(xí)題(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望可以幫到你2021-07-07