免费高清特黄a大片,九一h片在线免费看,a免费国产一级特黄aa大,国产精品国产主播在线观看,成人精品一区久久久久,一级特黄aa大片,俄罗斯无遮挡一级毛片

分享

強(qiáng)大的Spring Boot是如何發(fā)展起來(lái)的,你知道嗎?

 新用戶26922hFh 2022-01-23

  強(qiáng)大的Spring Boot是如何發(fā)展起來(lái)的,你知道嗎?

  Spring帝國(guó)

  Spring幾乎是每一位Java開(kāi)發(fā)人員都耳熟能詳?shù)拈_(kāi)發(fā)框架,不論您是一名初出茅廬的程序員還是經(jīng)驗(yàn)豐富的老司機(jī),都會(huì)對(duì)其有一定的了解或使用經(jīng)驗(yàn)。在現(xiàn)代企業(yè)級(jí)應(yīng)用架構(gòu)中,Spring技術(shù)棧幾乎成為了Java語(yǔ)言的代名詞,那么Spring為什么能夠在眾多開(kāi)源框架中脫穎而出,成為業(yè)內(nèi)一致認(rèn)可的技術(shù)解決方案呢?我們不妨從最初的Spring Framework開(kāi)始,看看它為什么能夠橫掃千軍,一統(tǒng)江湖!

  挑戰(zhàn)權(quán)威,一戰(zhàn)成名

  2004年3月,Spring的第一個(gè)版本以及其創(chuàng)始人Rod Johnson的經(jīng)典力作《Expert one-on-one J2EE Development without EJB》發(fā)布,打破了當(dāng)時(shí)Java開(kāi)發(fā)領(lǐng)域的傳統(tǒng)思考模式,企業(yè)級(jí)應(yīng)用開(kāi)始走向“輕量化”發(fā)展的步伐。

  最初的Spring Framework 1.0并不像如今的Spring那么復(fù)雜,但是在該版本中已經(jīng)包含了Spring中最為核心的兩大要素:依賴注入和面向切面編程,這兩個(gè)功能是Spring區(qū)別于其他優(yōu)秀框架,并在企業(yè)級(jí)應(yīng)用中建立核心地位的關(guān)鍵所在。很多開(kāi)發(fā)者在初涉Java應(yīng)用的時(shí)候很可能會(huì)覺(jué)得這兩個(gè)功能的意義并不大,因?yàn)椴挥盟鼈兾覀円廊豢梢院芎玫膶?shí)現(xiàn)業(yè)務(wù)功能,事實(shí)也確實(shí)如此,但是隨著業(yè)務(wù)的迭代和開(kāi)發(fā)的深入,復(fù)雜多變的需求開(kāi)始慢慢侵蝕原本“完美”的架構(gòu),開(kāi)發(fā)與測(cè)試的難度逐步增大,往往在這個(gè)時(shí)候,我們才體會(huì)到了Spring的價(jià)值。所以,即便在Spring的最初版本中也封裝了諸多偏業(yè)務(wù)型的功能封裝,如:郵件發(fā)送、事務(wù)管理等,但我們要知道真正讓企業(yè)級(jí)應(yīng)用離不開(kāi)Spring的理由并不是這些與業(yè)務(wù)直接相關(guān)的功能,而是上面所提及的與業(yè)務(wù)實(shí)現(xiàn)毫不相關(guān)的兩大核心。

  由于在初期版本中Spring對(duì)很多功能性封裝并沒(méi)有今天的Spring那么強(qiáng)大,所以很長(zhǎng)一段時(shí)間,我們都采用了Spring做工程管理來(lái)整合其他更優(yōu)秀的功能型框架來(lái)完成系統(tǒng)開(kāi)發(fā)的架構(gòu)模式,比如曾經(jīng)風(fēng)靡一時(shí)的Spring + Struts + Hibernate架構(gòu),相信可以勾起一代人的回憶。

  優(yōu)雅靈活,吸粉無(wú)數(shù)

  Spring在發(fā)布并獲得業(yè)界的普遍認(rèn)可之后,Spring開(kāi)源社區(qū)變得異?;钴S,除了社區(qū)自身不斷對(duì)Spring進(jìn)行增強(qiáng)之外,其他功能性框架也紛紛對(duì)Spring進(jìn)行適配與支持。在隨后發(fā)布的Spring 2.x和3.x中,先后支持了Annotation的優(yōu)雅配置方式以及更為靈活的Java類的配置,這使得Spring在管理Bean的配置方式上變得更為多樣化。

  但是隨著Spring的深入應(yīng)用,繁瑣的配置問(wèn)題也開(kāi)始顯現(xiàn),我們會(huì)發(fā)現(xiàn)每次在構(gòu)建項(xiàng)目的時(shí)候總是在不斷的復(fù)制黏貼著一些模版化的配置與代碼,有時(shí)候我們只是想實(shí)現(xiàn)幾個(gè)很簡(jiǎn)單的功能,結(jié)果配置內(nèi)容遠(yuǎn)大于業(yè)務(wù)邏輯代碼的編寫(xiě);同時(shí),在框架整合過(guò)程中,對(duì)于一些共同依賴的Jar包存在著潛在的沖突風(fēng)險(xiǎn),使得一些復(fù)雜的整合任務(wù)變得困難起來(lái)。所以,Spring的“輕量級(jí)”在其他動(dòng)態(tài)語(yǔ)言面前就顯得不那么輕了。

  輪子大師,前途未卜

  在之后的Spring 4.x中除了提供對(duì)Java 8的支持以及對(duì)依賴注入的增強(qiáng)之外,有很長(zhǎng)一段時(shí)間,Spring社區(qū)對(duì)其核心框架的創(chuàng)新就沒(méi)有那么出彩了,社區(qū)更多的精力開(kāi)始將矛頭轉(zhuǎn)向了曾經(jīng)那些親密無(wú)間的小伙伴們。于是,我們?cè)赟pring社區(qū)發(fā)現(xiàn)多出了各種功能性的兄弟項(xiàng)目,比如:簡(jiǎn)化數(shù)據(jù)訪問(wèn)的Spring Data、提供批處理能力的Spring Batch、用于保護(hù)應(yīng)用安全的Spring Security等。

  雖然這些框架從個(gè)體來(lái)說(shuō)都有一定的優(yōu)勢(shì)和先進(jìn)的理念,但是對(duì)于很多既有系統(tǒng)來(lái)說(shuō),在功能性框架上很難做出改變,對(duì)于這些新生的輪子項(xiàng)目就很難得到應(yīng)用,除了一些從零開(kāi)始的系統(tǒng)會(huì)做一些嘗試之外,鑒于學(xué)習(xí)成本和踩坑風(fēng)險(xiǎn)的考慮,中小團(tuán)隊(duì)對(duì)這些新項(xiàng)目很少有愿意去嘗試的。所以,一些老牌的功能性框架除非有嚴(yán)重的性能或安全問(wèn)題出現(xiàn),不然很難被這些輪子所替代。

  在這段時(shí)間里,雖然Spring社區(qū)推出了那么多的輪子項(xiàng)目,但是真正在國(guó)內(nèi)得到廣泛應(yīng)用的并不多,很多開(kāi)發(fā)團(tuán)隊(duì)依然只是使用最核心的IOC和AOP,并根據(jù)自己團(tuán)隊(duì)的技術(shù)棧情況整合出更適合自身的腳手架來(lái)進(jìn)行系統(tǒng)開(kāi)發(fā)。

  神兵出世,再創(chuàng)輝煌

  2014年4月1日,Spring Boot發(fā)布了第一個(gè)正式版本。該項(xiàng)目旨在幫助開(kāi)發(fā)者更容易地創(chuàng)建基于Spring的應(yīng)用程序和服務(wù),使得現(xiàn)有的和新的Spring開(kāi)發(fā)者能夠最快速地獲得所需要的二手Spring功能。一直到今天發(fā)布2.x版本,共經(jīng)歷了近4年的發(fā)展,Spring Boot已經(jīng)是一個(gè)擁有了21000多Star,15000多次Commits,貢獻(xiàn)者超過(guò)400多名的超熱門(mén)開(kāi)源項(xiàng)目。

  強(qiáng)大的Spring Boot是如何發(fā)展起來(lái)的,你知道嗎?

  Spring Boot為什么突然如此備受關(guān)注與推崇呢?主要有以下幾點(diǎn):

  簡(jiǎn)化依賴管理:在Spring Boot中提供了一系列的Starter POMs,將各種功能性模塊進(jìn)行了劃分與封裝,讓我們可以更容易的引入和使用,有效的避免了用戶在構(gòu)建傳統(tǒng)Spring應(yīng)用時(shí)維護(hù)大量依賴關(guān)系而引發(fā)的JAR沖突等問(wèn)題。自動(dòng)化配置:Spring Boot為每一個(gè)Starter都提供了自動(dòng)化的Java配置類,用來(lái)替代我們傳統(tǒng)Spring應(yīng)用在XML中繁瑣且并不太變化的Bean配置;同時(shí)借助一系列的條件注解修飾,使得我們也能輕松的替換這些自動(dòng)化配置的Bean來(lái)進(jìn)行擴(kuò)展。嵌入式容器:除了代碼組織上的優(yōu)化之外,Spring Boot中支持的嵌入式容器也是一個(gè)極大的亮點(diǎn)(此處仿佛又聽(tīng)到了Josh Long的那句:“Deploy as a Jar, not a War”),借助這個(gè)特性使得Spring Boot應(yīng)用的打包運(yùn)行變得非常的輕量級(jí)。生產(chǎn)級(jí)的監(jiān)控端點(diǎn):spring-boot-starter-actuator的推出可以說(shuō)是Spring Boot在Spring基礎(chǔ)上的另一個(gè)重要?jiǎng)?chuàng)新,為Spring應(yīng)用的工程化變得更加完美。該模塊并不能幫助我們實(shí)現(xiàn)任何業(yè)務(wù)功能,但是卻在架構(gòu)運(yùn)維層面給予我們更多的支持,通過(guò)該模塊暴露的HTTP接口,我們可以輕松的了解和控制Spring Boot應(yīng)用的運(yùn)行情況。

  Spring Boot雖然是基于Spring構(gòu)建的,但是通過(guò)上面這些特性的支持,改變了我們使用Spring的姿勢(shì),極大得簡(jiǎn)化了構(gòu)建企業(yè)級(jí)應(yīng)用的各種配置工作,尤其對(duì)于很多初學(xué)者來(lái)說(shuō),變得更加容易入門(mén)使用。

  強(qiáng)大的Spring Boot是如何發(fā)展起來(lái)的,你知道嗎?

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多