免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Spring Boot,讓Java開發(fā)變得更簡單!

來源:Java聯(lián)盟

Spring Boot是由Pivotal團(tuán)隊提供的全新框架,其設(shè)計目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程。

該框架使用了特定的方式來進(jìn)行配置,從而使開發(fā)人員不再需要定義樣板化的配置。

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

具我所知,Spring Boot近幾年來深受Java開發(fā)者們的喜愛,還有人稱Spring Boot是Java應(yīng)用開發(fā)的顛覆者。

總的來說,Spring Boot提供了一種新的編程范式,它簡化了基于 Spring 的應(yīng)用開發(fā),通過少量的代碼就能創(chuàng)建一個獨立的、產(chǎn)品級別的 Spring 應(yīng)用。

有了它, 我們可以更加敏捷地開發(fā)Spring應(yīng)用程序,專注于應(yīng)用程序的功能,不用在Spring的配置上多花功夫,甚至完全不用配置。

Spring Boot 的誕生

隨著 Spring 集成的軟件越來越多,Spring 也慢慢從一個單一簡潔的小框架變成一個大而全的開源軟件,Spring 的邊界不斷的進(jìn)行擴(kuò)充,到了后來 Spring 幾乎可以做任何事情了,市面上主流的開源軟件、中間件都有 Spring 對應(yīng)組件支持,人們在享用 Spring 的這種便利之后,也遇到了一些問題。

Spring 每集成一個開源軟件,就需要增加一些基礎(chǔ)配置,慢慢的隨著人們開發(fā)的項目越來越龐大,往往需要集成很多開源軟件,因此后期使用 Spring 開發(fā)大型項目需要引入很多配置文件,太多的配置非常難以理解,并容易配置出錯,到了后來人們甚至稱 Spring 為配置地獄。

Spring 似乎也意識到了這些問題,急需有這么一套軟件可以解決這些問題,這個時候微服務(wù)的概念也慢慢興起,快速開發(fā)微小獨立的應(yīng)用變得更為急迫,Spring 剛好處在這么一個交叉點上,于 2013 年初開始的 Spring Boot 項目的研發(fā),2014年4月,Spring Boot 1.0.0 發(fā)布。

上圖為2014年到2018年 Spring Boot 的百度指數(shù),可以看出 Spring Boot 2.0 的推出引發(fā)了搜索高峰。

Spring Boot 不是為了取代 Spring ,Spring Boot 基于 Spring 開發(fā),是為了讓人們更容易的使用 Spring??吹?Spring Boot 的市場反應(yīng),Spring 官方也非常重視 Spring Boot 的后續(xù)發(fā)展,已經(jīng)將 Spring Boot 作為公司最頂級的項目來推廣,放到了官網(wǎng)上第一的位置,因此后續(xù) Spring Boot 的持續(xù)發(fā)展也被看好。

Spring Boot 特性

  • 使用 Spring 項目引導(dǎo)頁面可以在幾秒構(gòu)建一個項目
  • 方便對外輸出各種形式的服務(wù),如 REST API、WebSocket、Web、Streaming、Tasks
  • 非常簡潔的安全策略集成
  • 支持關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫
  • 支持運行期內(nèi)嵌容器,如 Tomcat、Jetty
  • 強大的開發(fā)包,支持熱啟動
  • 自動管理依賴
  • 自帶應(yīng)用監(jiān)控
  • 支持各種 IED,如 IntelliJ IDEA、NetBeans

Spring Boot 的優(yōu)勢

Spring Boot 使開發(fā)變得簡單,提供了豐富的解決方案,快速集成各種解決方案提升開發(fā)效率。

Spring Boot 使配置變得簡單,提供了豐富的 Starters,集成主流開源產(chǎn)品往往只需要簡單的配置即可。

Spring Boot 使部署變得簡單,其本身內(nèi)嵌啟動容器,僅僅需要一個命令即可啟動項目,結(jié)合 Jenkins、Docker 自動化運維非常容易實現(xiàn)。

Spring Boot 使監(jiān)控變得簡單,自帶監(jiān)控組件,使用 Actuator 輕松監(jiān)控服務(wù)各項狀態(tài)。

從軟件發(fā)展的角度來講,越簡單的開發(fā)模式越流行,簡單的開發(fā)模式解放出更多生產(chǎn)力,讓開發(fā)人員可以避免將精力耗費在各種配置、語法所設(shè)置的門檻上,從而更專注于業(yè)務(wù)。這點上,Spring Boot 已盡可能地簡化了應(yīng)用開發(fā)的門檻。

Spring Boot 的實踐

使用自定義BOM來維護(hù)第三方依賴

Spring Boot項目本身使用和集成了大量的開源項目,它幫助我們維護(hù)了這些第三方依賴。但是也有一部分在實際項目使用中并沒有包括進(jìn)來,這就需要我們在項目中自己維護(hù)版本。

如果在一個大型的項目中,包括了很多未開發(fā)模塊,那么維護(hù)起來就非常的繁瑣。

怎么辦呢?事實上,Spring IO Platform就是做的這個事情,它本身就是Spring Boot的子項目,同時維護(hù)了其他第三方開源庫。

我們可以借鑒Spring IO Platform來編寫自己的基礎(chǔ)項目platform-bom,所有的業(yè)務(wù)模塊項目應(yīng)該以BOM的方式引入。這樣在升級第三方依賴時,就只需要升級這一個依賴的版本而已。

io.spring.platform platform-bom Cairo-SR3 pom import

使用自動配置

Spring Boot的一個主要特性是使用自動配置。這是Spring Boot的一部分,它可以簡化你的代碼并使之工作。當(dāng)在類路徑上檢測到特定的jar文件時,自動配置就會被激活。

使用它的最簡單方法是依賴Spring Boot Starters。因此,如果你想與Redis進(jìn)行集成,你可以首先包括:

org.springframework.boot spring-boot-starter-data-redis

如果你想與MongoDB進(jìn)行集成,需要這樣(但只有在絕對必要時才應(yīng)該這樣做。):

org.springframework.boot spring-boot-starter-data-mongodb

借助于這些starters,這些繁瑣的配置就可以很好地集成起來并協(xié)同工作,而且它們都是經(jīng)過測試和驗證的。這非常有助于避免可怕的Jar地獄(https://dzone.com/articles/what-is-jar-hell)。

通過使用以下注解屬性,可以從自動配置中排除某些配置類:

@EnableAutoConfiguration(exclude = {ClassNotToAutoconfigure.class})

使用Spring Initializr來開始一個新的Spring Boot項目

這一條最佳實踐來自Josh Long (Spring Advocate,@starbuxman)。

Spring Initializr(https://start.spring.io/)提供了一個超級簡單的方法來創(chuàng)建一個新的Spring Boot項目,并根據(jù)你的需要來加載可能使用到的依賴。

使用Initializr創(chuàng)建應(yīng)用程序可確保你獲得經(jīng)過測試和驗證的依賴項,這些依賴項適用于Spring自動配置。你甚至可能會發(fā)現(xiàn)一些新的集成,但你可能并沒有意識到這些。

考慮為常見的組織問題創(chuàng)建自己的自動配置

這一條也來自Josh Long(Spring Advocate,@starbuxman)——這個實踐是針對高級用戶的。

如果你在一個嚴(yán)重依賴Spring Boot的公司或團(tuán)隊中工作,并且有共同的問題需要解決,那么你可以創(chuàng)建自己的自動配置。

這項任務(wù)涉及較多工作,因此你需要考慮何時獲益是值得投入的。與多個略有不同的定制配置相比,維護(hù)單個自動配置更容易。

如果將這個提供Spring Boot配置以開源庫的形式發(fā)布出去,那么將極大地簡化數(shù)千個用戶的配置工作。

考慮為常見的組織問題創(chuàng)建自己的自動配置

盡管允許你有很大的自由,但是有一些基本規(guī)則值得遵守來設(shè)計你的源代碼結(jié)構(gòu)。

  • 避免使用默認(rèn)包。確保所有內(nèi)容(包括你的入口點)都位于一個名稱很好的包中,這樣就可以避免與裝配和組件掃描相關(guān)的意外情況;
  • 將Application.java(應(yīng)用的入口類)保留在頂級源代碼目錄中;
  • 我建議將控制器和服務(wù)放在以功能為導(dǎo)向的模塊中,但這是可選的。一些非常好的開發(fā)人員建議將所有控制器放在一起。不論怎樣,堅持一種風(fēng)格!

提供全局異常處理

你真的需要一種處理異常的一致方法。Spring Boot提供了兩種主要方法:

你應(yīng)該使用HandlerExceptionResolver定義全局異常處理策略;

你也可以在控制器上添加@ExceptionHandler注解,這在某些特定場景下使用可能會很有用。

使用日志框架

你可能已經(jīng)意識到這一點,但你應(yīng)該使用Logger進(jìn)行日志記錄,而不是使用System.out.println()手動執(zhí)行。這很容易在Spring Boot中完成,幾乎沒有配置。只需獲取該類的記錄器實例:

Logger logger = LoggerFactory.getLogger(MyClass.class);

這很重要,因為它可以讓你根據(jù)需要設(shè)置不同的日志記錄級別。有關(guān)Spring Boot日志集成點擊 這里 有一篇實戰(zhàn)文章

測試你的代碼

這不是Spring Boot特有的,但它需要提醒——測試你的代碼!如果你沒有編寫測試,那么你將從一開始就編寫遺留代碼。

如果有其他人使用你的代碼庫,那邊改變?nèi)魏螙|西將會變得危險。當(dāng)你有多個服務(wù)相互依賴時,這甚至可能更具風(fēng)險。

由于存在Spring Boot最佳實踐,因此你應(yīng)該考慮將Spring Cloud Contract用于你的消費者驅(qū)動契約,它將使你與其他服務(wù)的集成更容易使用。

使用測試切片讓測試更容易,并且更專注

這一條實踐來自Madhura Bhave(Spring 開發(fā)者, @madhurabhave23)。

使用Spring Boot測試代碼可能很棘手——你需要初始化數(shù)據(jù)層,連接大量服務(wù),模擬事物……實際上并不是那么難!答案是使用測試切片。

使用測試切片,你可以根據(jù)需要僅連接部分應(yīng)用程序。這可以為你節(jié)省大量時間,并確保你的測試不會與未使用的內(nèi)容相關(guān)聯(lián)。

總而言之,掌握 Spring Boot 是非常有必要的了,它讓我們編寫基于Spring的微服務(wù)正變得前所未有的簡單。因此,越早掌握這門技術(shù)對于我們來說收益也越大。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Spring MVC 到 Spring BOOT的簡化之路
譯:什么是 Spring Boot?
SpringBoot從入門到上手實戰(zhàn)
解讀SpringBoot最流行的16條實踐
強大的Spring Boot是如何發(fā)展起來的,你知道嗎?
spring boot日志配置
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服