Spring Boot—— 入門+進(jìn)階+實(shí)例

在了解Spring Boot之前應(yīng)該先了解下Spring,因?yàn)镾pring Boot的核心是基于Spring構(gòu)建的。Spring是由Rod Johnson在2002年創(chuàng)建的一個(gè)開源框架,Spring在創(chuàng)建到現(xiàn)在一直處于飛速發(fā)展之中。目前已經(jīng)成為J2EE開發(fā)中的事實(shí)標(biāo)準(zhǔn)。但是隨著IT技術(shù)的飛速發(fā)展,及IT項(xiàng)目變得越來越復(fù)雜。如果學(xué)習(xí)過Spring就知道Spring非常依賴xml文件進(jìn)行配置,有時(shí)一個(gè)項(xiàng)目就有幾十個(gè)xml配置文件,這些繁瑣的配置、以及Spring整合第三方框架的配置問題。經(jīng)常導(dǎo)致開發(fā)效率低下,一不小心就出現(xiàn)丟三拉四;有時(shí)一不留神就導(dǎo)致發(fā)版失敗,給公司造成經(jīng)濟(jì)損失。

Spring Boot是由Pivotal團(tuán)隊(duì)打造的,并在2014年發(fā)布的一個(gè)全新框架,其設(shè)計(jì)目標(biāo)就是用來簡(jiǎn)化Spring應(yīng)用的搭建、開發(fā)及部署。Spring Boot采用了特定的方式進(jìn)行配置,從而達(dá)到使開發(fā)人員不在需要配置繁瑣的xml文件。簡(jiǎn)單的說其實(shí)Spring Boot并不是什么新的框架,就是摒棄了xml的配置方式,使用了一種新的配置方式;然后在maven中使用starter的方式整合了很多第三方框架,同時(shí)提供了很多默認(rèn)的配置參數(shù)。

Spring Boot官網(wǎng)(https://spring.io/projects/spring-boot/?)有如【圖1】一段話:

【圖1】

這段話這段話跟我上面的解釋大同小異。

Spring Boot為啥不學(xué)不行

Spring Boot在短短四年就已經(jīng)由1.0發(fā)展到2.0了;而且就這短短四年就已經(jīng)紅遍神州大地。無論小公司,還是大企業(yè),都在使用。

1.Spring Boot能干啥

打開Spring官網(wǎng)(https://spring.io/?),映入我們眼簾的是如下一張圖【圖2】:

【圖2】

看圖中框住的那塊知道,Spring官方對(duì)Spring Boot的定位是Build Anything,意思就是Spring Boot可以構(gòu)建任何東西。Spring Boot旨在快速、高效,使用最少的配置構(gòu)建Java應(yīng)用。學(xué)完了Spring Boot,還有更高級(jí)的Spring Cloud和Spring Cloud Data Flow。

Spring Cloud的定位是Coordinate Anything (協(xié)調(diào)任何東西)

Spring Cloud Data Flow的定位是Connect Everything (連接任何東西)

仔細(xì)斟酌一下Spring Cloud和Spring Cloud Data Flow,發(fā)現(xiàn)Cloud和Data 都跟現(xiàn)在最火的技術(shù)關(guān)聯(lián)在一起,Cloud對(duì)應(yīng)云,Data對(duì)應(yīng)數(shù)據(jù)。而Spring Cloud和Spring Cloud Data Flow有基于Spring Boot,所以Spring Boot必須先學(xué)。

2.企業(yè)招聘對(duì)Spring Boot的要求及Spring Boot的百度搜索指數(shù)

打開國(guó)內(nèi)比較知名的招聘網(wǎng)站,例如在獵聘網(wǎng)搜索一下,可以發(fā)現(xiàn)很多Java相關(guān)的職位都對(duì)Spring Boot技術(shù)有所要求。如下【圖3】這個(gè)Oralce公司的招聘職位,在招聘的職位描述里就對(duì)Spring Boot有要求。

【圖3】

Spring Boot嫣然已經(jīng)成為Java程序員打怪升級(jí)的必備技能。就不說Spring Boot有多重要了。

再看下Spring Boot的這個(gè)關(guān)鍵字的百度搜索指數(shù)(http://index.baidu.com),Spring?Boot從2014年推出到現(xiàn)在,Spring Boot在百度的搜索指數(shù)一直處于穩(wěn)步增長(zhǎng)的狀態(tài)中【圖4】。說明程序員或者公司對(duì)Spring Boot關(guān)注度非常高。

【圖4】

3.Spring Boot的好處

使用了Spring Boot后,能給開發(fā)人員帶來哪些好處?能給運(yùn)維人員帶來哪些方便?甚至說能給公司帶來哪些經(jīng)濟(jì)效益?看圖【圖5】說話:

【圖5】

1.基于Spring

Spring Boot基于Spring,所以Spring有的優(yōu)點(diǎn)Spring Boot也有,不需要開發(fā)人員去學(xué)習(xí)一個(gè)全新的框架,學(xué)習(xí)門檻相對(duì)降低。

2.快速編碼

Spring Boot的依賴包都是基于maven的pom文件提供的,而Spring Boot本身就集成了特別多的第三方框架。以前開發(fā)Spring應(yīng)用時(shí),需要用到的第三方框架的庫都需要開發(fā)人員一個(gè)一個(gè)去尋找;現(xiàn)在不需要了,有些可能只需引入一個(gè)pom.xml,就能把大量需要用到的第三方庫自動(dòng)引入到項(xiàng)目中。所以減少了開發(fā)工作量,實(shí)現(xiàn)快速編碼。

3.模塊化

基于Spring Boot開發(fā)的項(xiàng)目可以非常簡(jiǎn)單的實(shí)現(xiàn)模塊化編程,這樣的話可以非常有效的實(shí)現(xiàn)項(xiàng)目的分工合作,減少開發(fā)過程中的代碼沖突。模塊化編程還可以非常高效的實(shí)現(xiàn)減少代碼的改動(dòng)量,按需修改模塊,降低生產(chǎn)發(fā)生事故概率。

4.配置簡(jiǎn)單

在文章開頭就說了Spring Boot擯棄了繁瑣的xml配置文件,大量的配置文件經(jīng)常是導(dǎo)致生產(chǎn)事故的原因。Spring Boot大量采用yml形式的配置文件再加上相應(yīng)的Annotation,從而大大減少了配置文件的個(gè)數(shù),因?yàn)橐郧暗腟pring應(yīng)用引入一個(gè)第三方框架說不定就要添加一個(gè)配置文件。舉個(gè)例子,比如項(xiàng)目中要引入數(shù)據(jù)庫連接池HikariCP,就需要添加一個(gè)關(guān)于HikariCP數(shù)據(jù)庫連接池的配置文件,但是使用了Spring Boot采用HikariCP可能就只需要那么幾行配置就可以了,因?yàn)镾pring Boot默認(rèn)集成HikariCP數(shù)據(jù)庫連接池,提供了很多默認(rèn)的配置。

5.便捷部署

Spring Boot天生就是為了簡(jiǎn)單、快捷部署而生。SpringBoot內(nèi)嵌了Tomcat,不需要額外部署應(yīng)用服務(wù)器Tomcat,只需簡(jiǎn)單一個(gè)Java運(yùn)行環(huán)境即可,而且啟動(dòng)的命令也非常簡(jiǎn)單:java –jar xxx-release.jar。同時(shí)Spring Boot結(jié)合現(xiàn)在非?;鸬募夹g(shù) Docker、Kubernetes可以快速實(shí)現(xiàn)集群部署。

6.有效監(jiān)控

Spring Boot集成了非常高效的監(jiān)控框架,只要簡(jiǎn)單引入對(duì)spring-boot-start-actuator的依賴,就可以實(shí)現(xiàn)對(duì)服務(wù)性能的監(jiān)控。結(jié)合Spring Cloud就可以實(shí)現(xiàn)對(duì)整個(gè)微服務(wù)鏈路的全天候監(jiān)控。

彩蛋

作者借助51CTO訂閱專欄平臺(tái),上線了專欄《Spring Boot實(shí)戰(zhàn):快速構(gòu)建項(xiàng)目》,實(shí)戰(zhàn)構(gòu)建Java應(yīng)用!??!

本課程你能學(xué)到什么

課程中使用Spring Boot相對(duì)較新版本2.0.4.RELEASE,文中的例子均是小編在工作中用到的場(chǎng)景、或遇到的問題。目的是讓Spring Boot學(xué)習(xí)者快速上手,同時(shí)學(xué)扎實(shí)Spring Boot是向Spring Cloud邁進(jìn)的必經(jīng)之路。課程主要非常三部分:基礎(chǔ)篇、進(jìn)階篇和項(xiàng)目篇

基礎(chǔ)篇(1-15):主要介紹Spring Boot中常用的功能和要點(diǎn),在這個(gè)階段里將講到Spring Boot的環(huán)境搭建、日志框架logback的使用、獲取properties配置文件的常用方式、模板引擎Thymeleaf、跨域訪問的實(shí)現(xiàn)、HikariCP數(shù)據(jù)源的使用等,學(xué)完這十五篇能達(dá)到使用Spring Boot快速搭建項(xiàng)目,實(shí)現(xiàn)基本的CURD功能。

進(jìn)階篇(16-22):這個(gè)階段主要講解Spring Boot整合一些現(xiàn)在互聯(lián)網(wǎng)公司常用到的中間件,包括Spring Boot整合Redis、Spring Boot實(shí)現(xiàn)任務(wù)調(diào)度處理、Spring Boot如何使用消息中間件ActiveMQ實(shí)現(xiàn)消息隊(duì)列處理、如何使用全文檢索Elasticsearch、流程引擎Activiti、規(guī)則引擎Drools等。

項(xiàng)目篇(23-26):主要使用一個(gè)小項(xiàng)目把前22講說到的技術(shù)串起來,目的讓大家對(duì)這些技術(shù)的使用場(chǎng)景有一個(gè)全局概念。什么情況場(chǎng)景到這個(gè)框架、什么場(chǎng)景用到那個(gè)框架。認(rèn)真的學(xué)完,并加以思考;達(dá)到舉一反三,觸類旁通。差不多就可以正在的開發(fā)Spring Boot項(xiàng)目了。一句話:高徒出名師。

你是否適合學(xué)習(xí)本課程

1.有Java語言開發(fā)基礎(chǔ),對(duì)Spring、Maven有一定了解的在校學(xué)生、初學(xué)者或者自學(xué)者

2.對(duì)新技術(shù)Spring Boot感興趣的開發(fā)者

3.有傳統(tǒng)行業(yè)IT項(xiàng)目經(jīng)驗(yàn),以后想往Spring Cloud微服務(wù)發(fā)展的工作人員

4.想對(duì)Spring Boot有一個(gè)整體了解的相關(guān)人員

開發(fā)環(huán)境及用到的相關(guān)技術(shù)

開發(fā)環(huán)境:

1.開發(fā)工具:Eclipse(對(duì)IDEA熟悉的人員可以自行使用IDEA)

2.使用JDK 的版本為1.8

3.使用Spring Boot的版本為2.0.4.RELEASE

使用的Maven版本為3.5.0

其中Spring Boot 2.0.4版本要求JDK最低版本為1.8,所以不能隨意改變;但是Eclipse和Maven的版本可以選擇高一點(diǎn)或者低稍許的版本都沒問題,不要差太遠(yuǎn)即可。

用到的相關(guān)技術(shù):

FastJson

Thymeleaf

MyBatis

Redis

Logback

HikariCP

Elasticsearch

Activiti

Drools

Quartz

在講解過程中可能還會(huì)用到其他技術(shù),這里就不一一列舉了,同時(shí)講解中的項(xiàng)目用到以上技術(shù)的版本可以自行選擇,不過盡量跟項(xiàng)目中的一致。

以上就是我個(gè)人的分享,更多精彩Java技術(shù)交流833216312具有1-5工作經(jīng)驗(yàn)的,面對(duì)目前流行的技術(shù)不知從何下手,需要突破技術(shù)瓶頸的可以加群。 在公司待久了,過得很安逸,但跳槽時(shí)面試碰壁。需要在短時(shí)間內(nèi)進(jìn)修、跳槽拿高薪的可以加群。 如果沒有工作經(jīng)驗(yàn),但基礎(chǔ)非常扎實(shí),對(duì)java工作機(jī)制,常用設(shè)計(jì)思想,常用java開發(fā)框架掌握熟練的可以加群。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容