您好,登錄后才能下訂單哦!
Spring 歷史
說起 Spring Boot 我們不得不先了解一下 Spring 這個企業,不僅因為 Spring Boot 來源于 Spirng 大家族,而且 Spring Boot 的誕生和 Sping 框架的發展息息相關 springboot項目案例 www.1b23.com。
時間回到2002年,當時正是 Java EE 和 EJB 大行其道的時候,很多知名公司都是采用此技術方案進行項目開發。這時候有一個美國的小伙子認為 EJB 太過臃腫,并不是所有的項目都需要使用 EJB 這種大型框架,應該會有一種更好的方案來解決這個問題。
為了證明他的想法是正確的,于2002年10月甚至寫了一本書《 Expert One-on-One J2EE 》,介紹了當時 Java 企業應用程序開發的情況,并指出了 Java EE 和 EJB 組件框架中存在的一些主要缺陷。在這本書中,他提出了一個基于普通 Java 類和依賴注入的更簡單的解決方案。
Spring Boot的誕生
隨著使用 Spring 進行開發的個人和企業越來越多,Spring 也慢慢從一個單一簡潔的小框架變成一個大而全的開源軟件,Spring 的邊界不斷的進行擴充,到了后來 Spring 幾乎可以做任何事情了,市面上主流的開源軟件、中間件都有 Spring 對應組件支持,人們在享用 Spring 的這種便利之后,也遇到了一些問題。
Spring 每集成一個開源軟件,就需要增加一些基礎配置,慢慢的隨著人們開發的項目越來越龐大,往往需要集成很多開源軟件,因此后期使用 Spirng 開發大型項目需要引入很多配置文件,太多的配置非常難以理解,并容易配置出錯,到了后來人們甚至稱 Spring 為配置地獄。
什么是Spring Boot
SpringBoot是由Pivotal團隊在2013年開始研發、2014年4月發布第一個版本的全新開源的輕量級框架。它基于Spring4.0設計,不僅繼承了Spring框架原有的優秀特性,而且還通過簡化配置來進一步簡化了Spring應用的整個搭建和開發過程。另外SpringBoot通過集成大量的框架使得依賴包的版本沖突,以及引用的不穩定性等問題得到了很好的解決。
Spring Boot特征
(1)可以創建獨立的Spring應用程序,并且基于其Maven或Gradle插件,可以創建可執行的JARs和WARs;
(2)內嵌Tomcat或Jetty等Servlet容器;
(3)提供自動配置的“starter”項目對象模型(POMS)以簡化Maven配置;
(4)盡可能自動配置Spring容器;
(5)提供準備好的特性,如指標、健康檢查和外部化配置;
(6)絕對沒有代碼生成,不需要XML配置。
Spring Boot的優勢
使用 Spring Boot 開發項目,會給我們帶來非常美妙的開發體驗,可以從以下幾個方面展開來說明
Spring Boot 讓開發變得更簡單
Spring Boot 對開發效率的提升是全方位的,我們可以簡單做一下對比:
在沒有使用 Spring Boot 之前我們開發一個 web 項目需要做哪些工作:
1)配置 web.xml,加載 Spring 和 Spring mvc
2)配置數據庫連接、配置 Spring 事務
3)配置加載配置文件的讀取,開啟注解
4)配置日志文件
…
n) 配置完成之后部署 tomcat 調試
可能你還需要考慮各個版本的兼容性,jar 包沖突的各種可行性。
那么使用 Spring Boot 之后我們需要開發一個 web 項目需要哪些操作呢?
1)登錄網址選擇對應的組件直接下載
2)導入項目,直接開發
上面的 N 步和下面的2步形成巨大的反差,這僅僅只是在開發環境搭建的這個方面。
Spring Boot 讓部署變得更簡單
說起 Spring Boot 讓部署變簡單,就不得不說 Spring Boot 內嵌容器。內嵌容器不只讓部署變得簡單,其實在開發調試階段也會帶來非常大的便利性,對比以往開發 Web 項目時配置 Tomcat 的繁瑣,會讓大家使用 Spring Boot 內嵌容器開發時有更深的感觸。使用 Spring Boot 開發 Web 項目,讓我們不需要關心容器的環境問題,專心寫業務代碼即可。
Spring Boot 讓監控變得更簡單
可以說 Spring Boot 就是一款自帶監控的開源軟件,在設計之初就考慮到應用的監控問題,專門提供了一款監控組件來完成這個工作,這個組件就是
Spring Boot Actuator 。
Spring Boot Actuator 是 Spring Boot 提供的對應用系統監控的集成功能,可以查看應用配置的詳細信息,例如自動化配置信息、創建的 Spring beans 以及一些環境屬性等。基于 Spring boot actuator 做出了一款強大的監控軟件,這個軟件就是 Spring Boot admin 。
Spring Boot Admin 是一個管理和監控 Spring Boot 應用程序的開源軟件。每個應用都認為是一個客戶端,通過 HTTP 或者使用 Eureka 注冊到 admin server 中進行展示,Spring Boot Admin UI 部分使用 AngularJs 將數據展示在前端。
Spring Boot Admin 是一個針對 spring-boot 的 actuator 接口進行UI美化封裝的監控工具。他可以:在列表中瀏覽所有被監控 spring-boot 項目的基本信息,詳細的 Health 信息、內存信息、JVM 信息、垃圾回收信息、各種配置信息(比如數據源、緩存列表和命中率)等,還可以直接修改logger的level。
簡單、直觀、易用是它的特點,針對一些特殊情況還可以提供報警服務。所以說使用 Spring Boot Actuator 解決了單個 Spring Boot 的監控問題,使用 Spring Boot Admin 就是解決了整個集群監控的問題。
Spring 、Spring Boot 和 Spring Cloud 的關系
Spring 最初最核心的兩大核心功能 Spring Ioc 和 Spring Aop 成就了 Spring,Spring 在這兩大核心的功能上不斷的發展,才有了 Spring 事務、Spirng Mvc 等一系列偉大的產品,最終成就了 Spring 帝國,到了后期 Spring 幾乎可以解決企業開發中的所有問題。
Spring Boot 是在強大的 Spring 帝國生態基礎上面發展而來,發明 Spring Boot 不是為了取代 Spring ,是為了讓人們更容易的使用 Spring 。所以說沒有 Spring 強大的功能和生態,就不會有后期的 Spring Boot 火熱, Spring Boot 使用約定優于配置的理念,重新重構了 Spring 的使用,讓 Spring 后續的發展更有生命力。
Spring Cloud 是一系列框架的有序集合。它利用 Spring Boot 的開發便利性巧妙地簡化了分布式系統基礎設施的開發,如服務發現注冊、配置中心、消息總線、負載均衡、斷路器、數據監控等,都可以用 Spring Boot 的開發風格做到一鍵啟動和部署。
Spring 并沒有重復制造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,通過 Spring Boot 風格進行再封裝屏蔽掉了復雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分布式系統開發工具包。 Spring Boot 使測試變得更簡單
Spring Boot 對測試的支持不可謂不強大,Spring Boot 內置了7種強大的測試框架:
JUnit: 一個 Java 語言的單元測試框架
Spring Test & Spring Boot Test:為 Spring Boot 應用提供集成測試和工具支持
AssertJ:支持流式斷言的 Java 測試框架
Hamcrest:一個匹配器庫
Mockito:一個 java mock 框架
JSONassert:一個針對 JSON 的斷言庫
JsonPath:JSON XPath 庫
我們只需要在項目中引入spring-boot-start-test依賴包,就可以對數據庫、Mock、 Web 等各種情況進行測試。
Spring Boot Test 中包含了我們需要使用的各種測試場景,滿足我們日常項目的測試需求。
Spring Boot 讓配置變得更簡單
Spring Boot 讓配置變簡單,說到這里我們就需要了解一下 Spring Boot 的核心思想:約定優于配置。那么什么是約定優于配置呢?約定優于配置(convention over configuration),也稱作按約定編程,是一種軟件設計范式,旨在減少軟件開發人員需做決定的數量,獲得簡單的好處,而又不失靈活性。
我們可以這樣來理解,正是由于 Spring Ioc 和 Spring Aop 兩個強大的功能才有了 Spring ,Spring 生態不斷的發展才有了 Spring Boot ,使用 Spring Boot 讓 Spring 更易用更有生命力,Spring Cloud 是基于 Spring Boot 開發的一套微服務架構下的服務治理方案。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。