1. 程式人生 > >精講Spring Boot—— 入門+進階+實例

精講Spring Boot—— 入門+進階+實例

color 沖突 生產 百度搜索 type 分工合作 coord fast 部分

Spring Boot到底是什麽

在了解Spring Boot之前應該先了解下Spring,因為Spring Boot的核心是基於Spring構建的。Spring是由Rod Johnson在2002年創建的一個開源框架,Spring在創建到現在一直處於飛速發展之中。目前已經成為J2EE開發中的事實標準。但是隨著IT技術的飛速發展,及IT項目變得越來越復雜。如果學習過Spring就知道Spring非常依賴xml文件進行配置,有時一個項目就有幾十個xml配置文件,這些繁瑣的配置、以及Spring整合第三方框架的配置問題。經常導致開發效率低下,一不小心就出現丟三拉四;有時一不留神就導致發版失敗,給公司造成經濟損失。

Spring Boot是由Pivotal團隊打造的,並在2014年發布的一個全新框架,其設計目標就是用來簡化Spring應用的搭建、開發及部署。Spring Boot采用了特定的方式進行配置,從而達到使開發人員不在需要配置繁瑣的xml文件。簡單的說其實Spring Boot並不是什麽新的框架,就是摒棄了xml的配置方式,使用了一種新的配置方式;然後在maven中使用starter的方式整合了很多第三方框架,同時提供了很多默認的配置參數。

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

技術分享圖片
【圖1】

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

Spring Boot為啥不學不行

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

1.Spring Boot能幹啥

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

技術分享圖片
【圖2】

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

Spring Cloud的定位是Coordinate Anything (協調任何東西)

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

仔細斟酌一下Spring Cloud和Spring Cloud Data Flow,發現Cloud和Data 都跟現在最火的技術關聯在一起,Cloud對應雲,Data對應數據。而Spring Cloud和Spring Cloud Data Flow有基於Spring Boot,所以Spring Boot必須先學。

2.企業招聘對Spring Boot的要求及Spring Boot的百度搜索指數

打開國內比較知名的招聘網站,例如在獵聘網搜索一下,可以發現很多Java相關的職位都對Spring Boot技術有所要求。如下【圖3】這個Oralce公司的招聘職位,在招聘的職位描述裏就對Spring Boot有要求。

技術分享圖片
【圖3】

Spring Boot嫣然已經成為Java程序員打怪升級的必備技能。就不說Spring Boot有多重要了。
再看下Spring Boot的這個關鍵字的百度搜索指數(http://index.baidu.com),Spring Boot從2014年推出到現在,Spring Boot在百度的搜索指數一直處於穩步增長的狀態中【圖4】。說明程序員或者公司對Spring Boot關註度非常高。

技術分享圖片
【圖4】

3.Spring Boot的好處

使用了Spring Boot後,能給開發人員帶來哪些好處?能給運維人員帶來哪些方便?甚至說能給公司帶來哪些經濟效益?看圖【圖5】說話:

技術分享圖片
【圖5】

1.基於Spring
Spring Boot基於Spring,所以Spring有的優點Spring Boot也有,不需要開發人員去學習一個全新的框架,學習門檻相對降低。

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

3.模塊化
基於Spring Boot開發的項目可以非常簡單的實現模塊化編程,這樣的話可以非常有效的實現項目的分工合作,減少開發過程中的代碼沖突。模塊化編程還可以非常高效的實現減少代碼的改動量,按需修改模塊,降低生產發生事故概率。

4.配置簡單
在文章開頭就說了Spring Boot擯棄了繁瑣的xml配置文件,大量的配置文件經常是導致生產事故的原因。Spring Boot大量采用yml形式的配置文件再加上相應的Annotation,從而大大減少了配置文件的個數,因為以前的Spring應用引入一個第三方框架說不定就要添加一個配置文件。舉個例子,比如項目中要引入數據庫連接池HikariCP,就需要添加一個關於HikariCP數據庫連接池的配置文件,但是使用了Spring Boot采用HikariCP可能就只需要那麽幾行配置就可以了,因為Spring Boot默認集成HikariCP數據庫連接池,提供了很多默認的配置。

5.便捷部署
Spring Boot天生就是為了簡單、快捷部署而生。SpringBoot內嵌了Tomcat,不需要額外部署應用服務器Tomcat,只需簡單一個Java運行環境即可,而且啟動的命令也非常簡單:java –jar xxx-release.jar。同時Spring Boot結合現在非常火的技術 Docker、Kubernetes可以快速實現集群部署。

6.有效監控
Spring Boot集成了非常高效的監控框架,只要簡單引入對spring-boot-start-actuator的依賴,就可以實現對服務性能的監控。結合Spring Cloud就可以實現對整個微服務鏈路的全天候監控。

> 彩蛋,作者將借助51CTO訂閱專欄平臺,上線專欄《精講Spring Boot技術》,感興趣的學員可添加小助手微信:cto51boke,提前加入專欄興趣群,讓我看到你們的學習熱情,一起加速專欄上線!!!

本課程你能學到什麽

課程中使用Spring Boot相對較新版本2.0.4.RELEASE,文中的例子均是小編在工作中用到的場景、或遇到的問題。目的是讓Spring Boot學習者快速上手,同時學紮實Spring Boot是向Spring Cloud邁進的必經之路。課程主要非常三部分:基礎篇、進階篇和項目篇

基礎篇(1-15):主要介紹Spring Boot中常用的功能和要點,在這個階段裏將講到Spring Boot的環境搭建、日誌框架logback的使用、獲取properties配置文件的常用方式、模板引擎Thymeleaf、跨域訪問的實現、HikariCP數據源的使用等,學完這十五篇能達到使用Spring Boot快速搭建項目,實現基本的CURD功能。

進階篇(16-22):這個階段主要講解Spring Boot整合一些現在互聯網公司常用到的中間件,包括Spring Boot整合Redis、Spring Boot實現任務調度處理、Spring Boot如何使用消息中間件ActiveMQ實現消息隊列處理、如何使用全文檢索Elasticsearch、流程引擎Activiti、規則引擎Drools等。

項目篇(23-26):主要使用一個小項目把前22講說到的技術串起來,目的讓大家對這些技術的使用場景有一個全局概念。什麽情況場景到這個框架、什麽場景用到那個框架。認真的學完,並加以思考;達到舉一反三,觸類旁通。差不多就可以正在的開發Spring Boot項目了。一句話:高徒出名師。

你是否適合學習本課程

1.有Java語言開發基礎,對Spring、Maven有一定了解的在校學生、初學者或者自學者
2.對新技術Spring Boot感興趣的開發者
3.有傳統行業IT項目經驗,以後想往Spring Cloud微服務發展的工作人員
4.想對Spring Boot有一個整體了解的相關人員
開發環境及用到的相關技術

開發環境:

1.開發工具:Eclipse(對IDEA熟悉的人員可以自行使用IDEA)
2.使用JDK 的版本為1.8
3.使用Spring Boot的版本為2.0.4.RELEASE

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

用到的相關技術:

  1. FastJson
  2. Thymeleaf
  3. MyBatis
  4. Redis
  5. Logback
  6. HikariCP
  7. Elasticsearch
  8. Activiti
  9. Drools
  10. Quartz
    在講解過程中可能還會用到其他技術,這裏就不一一列舉了,同時講解中的項目用到以上技術的版本可以自行選擇,不過盡量跟項目中的一致。

精講Spring Boot—— 入門+進階+實例