亚洲欧美日韩综合系列在线_91精品人妻一区二区_欧美大肥婆一级特大AA片_九色91视频免费观看_亚洲综合国产精品_av中文字幕在线不卡_久久精品色综合网_看黄色视频的软件_无卡无码高清中文字幕码2024_亚洲欧美日韩天堂网

為什么說 Java 程序員到了必須掌握 Spring Boot 的時候?

來源:技術(shù)小能手 發(fā)布時間:2018-09-18 15:46:13 閱讀量:1009

Spring Boot 是由 Pivotal 團(tuán)隊提供的全新框架,其設(shè)計目的是用來簡化新 Spring 應(yīng)用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進(jìn)行配置,從而使開發(fā)人員不再需要定義樣板化的配置。 Spring Boot 簡化了基于 Spring 的應(yīng)用開發(fā),通過少量的代碼就能創(chuàng)建一個獨立的、產(chǎn)品級別的 Spring 應(yīng)用。

作為一名 Java 程序員如果你已經(jīng)厭惡了傳統(tǒng)的開發(fā)模式,希望有一個全新的框架可以提供快速開發(fā),簡單集成的編程體驗,強烈建議你學(xué)習(xí)了解 Spring Boot 。Spring Cloud 未來隨著 Kubernetes 和 Service Mesh 的發(fā)展可能會有所弱化,但是 Spring Boot 給開發(fā)帶來的影響是深遠(yuǎn)的。

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ā)布。

a97a139fa4b12989b30625a90e82cfb3b8d29513

上圖為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 的優(yōu)勢

Spring Boot 讓開發(fā)變得更簡單

Spring Boot 對開發(fā)效率的提升是全方位的,我們可以簡單做一下對比:

在沒有使用 Spring Boot 之前我們開發(fā)一個 web 項目需要做哪些工作:

1)配置 web.xml,加載 Spring 和 Spring mvc

2)配置數(shù)據(jù)庫連接、配置 Spring 事務(wù)

3)配置加載配置文件的讀取,開啟注解

4)配置日志文件

n) 配置完成之后部署 tomcat 調(diào)試

可能你還需要考慮各個版本的兼容性,jar 包沖突的各種可行性。

那么使用 Spring Boot 之后我們需要開發(fā)一個 web 項目需要哪些操作呢?

1)登錄網(wǎng)址 http://start.spring.io/ 選擇對應(yīng)的組件直接下載

2)導(dǎo)入項目,直接開發(fā)

上面的 N 步和下面的2步形成巨大的反差,這僅僅只是在開發(fā)環(huán)境搭建的這個方面。

Spring Boot 使測試變得更簡單

Spring Boot 對測試的支持不可謂不強大,Spring Boot 內(nèi)置了7種強大的測試框架:

 ●  JUnit: 一個 Java 語言的單元測試框架
 ●  Spring Test & Spring Boot Test:為 Spring Boot 應(yīng)用提供集成測試和工具支持
 ●  AssertJ:支持流式斷言的 Java 測試框架
 ●  Hamcrest:一個匹配器庫
 ●  Mockito:一個 java mock 框架
 ●  JSONassert:一個針對 JSON 的斷言庫
 ●  JsonPath:JSON XPath 庫

我們只需要在項目中引入spring-boot-start-test依賴包,就可以對數(shù)據(jù)庫、Mock、 Web 等各種情況進(jìn)行測試。

Spring Boot 讓配置變得更簡單

Spring Boot 讓配置變簡單,說到這里我們就需要了解一下 Spring Boot 的核心思想:約定優(yōu)于配置。那么什么是約定優(yōu)于配置呢?約定優(yōu)于配置(convention over configuration),也稱作按約定編程,是一種軟件設(shè)計范式,旨在減少軟件開發(fā)人員需做決定的數(shù)量,獲得簡單的好處,而又不失靈活性。

本質(zhì)是說,開發(fā)人員僅需規(guī)定應(yīng)用中不符約定的部分。例如,如果模型中有個名為 User 的類,那么數(shù)據(jù)庫中對應(yīng)的表就會默認(rèn)命名為 user。只有在偏離這一約定時,例如將該表命名為"user_info",才需寫有關(guān)這個名字的配置。

Spring Boot 體系將約定優(yōu)于配置的思想展現(xiàn)得淋淋盡致,小到配置文件,中間件的默認(rèn)配置,大到內(nèi)置容器、生態(tài)中的各種 Starters 無不遵循此設(shè)計規(guī)則。Spring Boot 鼓勵各軟件組織方創(chuàng)建自己的 Starters ,創(chuàng)建 Starter 的核心組件之一就是 autoconfigure 模塊,也是 Starter 的核心功能就是在啟動的時候進(jìn)行自動裝配,屬性默認(rèn)化配置。

Spring Boot 讓部署變得更簡單

說起 Spring Boot 讓部署變簡單,就不得不說 Spring Boot 內(nèi)嵌容器。內(nèi)嵌容器不只讓部署變得簡單,其實在開發(fā)調(diào)試階段也會帶來非常大的便利性,對比以往開發(fā) Web 項目時配置 Tomcat 的繁瑣,會讓大家使用 Spring Boot 內(nèi)嵌容器開發(fā)時有更深的感觸。使用 Spring Boot 開發(fā) Web 項目,讓我們不需要關(guān)心容器的環(huán)境問題,專心寫業(yè)務(wù)代碼即可。

但內(nèi)嵌容器對部署帶來的改變其實更多,現(xiàn)在 Maven 、Gradle 已經(jīng)成了我們?nèi)粘i_發(fā)必不可少的構(gòu)建工具,使用這些工具很容易的將項目打包成 Jar 或者 War 包,在服務(wù)器上我們僅僅只需要一條命令就可以啟動項目。Spring Boot 支持在啟動的時候添加定制,比如設(shè)置應(yīng)用的堆內(nèi)存、垃圾回收機制、日志路徑等等。

虛擬化技術(shù)的發(fā)展給我們帶來了更多的可能性,我們可以利用容器化技術(shù),將 Spring Boot 項目做成鏡像,根據(jù)容器集群的策略來實現(xiàn)彈性擴(kuò)容、動態(tài)部署等。所以 Spring Boot + Docker + Jenkins 會將 Spring Boot 項目的部署做得更簡單化、智能化。

Spring Boot 讓監(jiān)控變得更簡單

可以說 Spring Boot 就是一款自帶監(jiān)控的開源軟件,在設(shè)計之初就考慮到應(yīng)用的監(jiān)控問題,專門提供了一款監(jiān)控組件來完成這個工作,這個組件就是 Spring Boot Actuator 。Spring Boot Actuator 是 Spring Boot 提供的對應(yīng)用系統(tǒng)監(jiān)控的集成功能,可以查看應(yīng)用配置的詳細(xì)信息,例如自動化配置信息、創(chuàng)建的 Spring beans 以及一些環(huán)境屬性等。

當(dāng)然 Spring Boot Actuator 雖然可以監(jiān)控一個 Spring Boot 應(yīng)用的健康情況,實際上現(xiàn)在的系統(tǒng)都是需要很多的服務(wù)相互配合來完成工作,如何通過一個監(jiān)控軟件來監(jiān)控所以的 Spring Boot 項目將變得比較緊迫。在開源界也有人意識到了這個問題,并且基于 Spring boot actuator 做出了一款強大的監(jiān)控軟件,這個軟件就是 Spring Boot admin 。

使用 Spring Boot Admin 不僅可以監(jiān)控 Spring Boot 項目,還可以監(jiān)控 Spring Cloud 項目,因此使用了 Spring Boot 項目之后我們監(jiān)控 Spring Boot 集群效果如下:

e4f110521d940acab85bc25a8b5e4dde5078aab1

簡單、直觀、易用是它的特點,針對一些特殊情況還可以提供報警服務(wù)。所以說使用 Spring Boot Actuator 解決了單個 Spring Boot 的監(jiān)控問題,使用 Spring Boot Admin 就是解決了整個集群監(jiān)控的問題。

課程推薦

如今微服務(wù)架構(gòu)已經(jīng)慢慢成為了互聯(lián)網(wǎng)架構(gòu)的主流,Spring Boot 正是這股潮流的主先鋒。Spring Boot 和微服務(wù)架構(gòu)都是未來軟件開發(fā)的一個大趨勢,越早參與其中受益越大。但是目前網(wǎng)絡(luò)上關(guān)于 Spring Boot 2.0 的各種資料質(zhì)量參差不齊,這給初學(xué)者帶來了很大的困擾。

因此作者(純潔的微笑,第三方支付公司技術(shù)總監(jiān))將結(jié)合兩年多兩家公司的 Spring Boot 實踐經(jīng)驗,將其中工作中最常用、最具實戰(zhàn)代表性的一些內(nèi)容重新整理出來,以 GitChat 精品課的形式來展現(xiàn)。課程也增加了實戰(zhàn)項目的內(nèi)容,讓你親自體會如何使用 Spring Boot 技術(shù)棧進(jìn)行快速開發(fā),并且可以很快的應(yīng)用在工作中。

本課程共包含五大部分,由淺入深的講解了 Spring Boot 技術(shù)棧的使用場景和實踐方式:

  • PART 1:從零開始認(rèn)識 Spring Boot;

  • PART 2:項目中最常用的 Web 相關(guān)技術(shù);

  • PART 3:Spring Boot 和數(shù)據(jù)庫的技術(shù)實踐;

  • PART 4:Spring Boot 如何集成 MQ、緩存、NoSQL 等中間件;

  • PART 5:綜合實踐。

認(rèn)真學(xué)完這個課程后,將會對 Spring Boot 有進(jìn)一步的了解,具備使用 Spring Boot 上手進(jìn)行開發(fā)的基本能力。



標(biāo)簽: 環(huán)境搭建
分享:
評論:
你還沒有登錄,請先