一级特黄aa大片欧美_日韩1级片_乳奶水h黄文_国产女人水多毛片白浆

IDC知識庫
IDC領域專業(yè)知識百科平臺

JAVA Spring Boot框架介紹

Spring Boot 是由 Pivotal 團隊提供的基于 Spring 的全新框架,旨在簡化 Spring 應用的初始搭建和開發(fā)過程。該框架使用了特定的方式來進行配置,從而使開發(fā)人員不再需要定義樣板化的配置。

Spring 官網(wǎng)給的定義是:Spring Boot 是所有基于 Spring 開發(fā)項目的起點。Spring Boot 集成了絕大部分目前流行的開發(fā)框架,就像 Maven 集成了所有的 JAR 包一樣,Spring Boot 集成了幾乎所有的框架,使得開發(fā)者能快速搭建 Spring 項目。

Spring Boot 的核心設計思想是“約定優(yōu)于配置”。基于這一設計原則,Spring Boot 極大地簡化了項目和框架的配置。比如在使用 Spring 開發(fā) Web 項目時,我們需要配置 web.xml、Spring 和 MyBatis 等,還需要將它們集成在一起。而使用 Spring Boot 一切將變得極其簡單,它采用了大量的默認配置來簡化這些文件的配置過程,只需引入對應的 Starters(啟動器)。

Spring Boot 可以構建一切。設計它就是為了使用最少的配置,以最快的速度來啟動和運行 Spring 項目。

Spring Boot的背景

多年來,隨著 Spring 的飛速發(fā)展,新功能不斷增加,Spring 變得越來越復雜。

通過訪問 Spring 官網(wǎng)就可以看到 Spring 的所有子項目和組件框架,如此多的子項目和組件使得 Spring 逐漸笨重起來,這顯然已經(jīng)無法適應云計算和微服務時代的發(fā)展趨勢。

于是 Spring Boot 應運而生。Spring Boot 建立在 Spring 基礎之上,遵循“約定優(yōu)于配置”的原則,避免了創(chuàng)建項目或框架時必須做的繁雜配置,幫助開發(fā)者以最少的工作量,更加簡單、方便地使用現(xiàn)有 Spring 中的所有功能組件。

Spring Boot的特性

Spring Boot 的一系列特性使得微服務架構的落地變得非常容易,對于目前眾多的技術棧,Spring Boot 是 Java 領域微服務架構的最優(yōu)落地技術。

下圖所示為 Spring Boot 的一些特性:


圖 1 Sprint Boot 的特性

Spring Boot的核心組件

Spring Boot 官方提供了很多當前流行的基礎功能組件的封裝,命名一般以 spring-boot-starter 開頭,比如 spring-boot-starter-quartz 定時任務組件和 spring-boot-starter-thymeleaf 頁面模板引擎等。

另外,由于 Spring Boot 的流行,很多第三方中間件也按照 Spring Boot 的規(guī)范提供了針對 Spring Boot 項目的 Starters(啟動器),一般以組件名開頭,比如 MyBatis 針對 Spring Boot 提供的組件包 mybatis-spring-boot-starter。

Spring Boot 的核心組件如下圖所示:


圖 2 Spring Boot的核心組件

Spring Boot的優(yōu)點

Spring Boot 繼承了 Spring 一貫的優(yōu)點和特性,同時增加了一些新功能和新特性,這讓 Spring Boot 非常容易上手,也讓編程變得更加簡單。

總結起來Spring Boot有如下幾個優(yōu)點:

  • 遵循“約定優(yōu)于配置”的原則,使用 Spring Boot 只需要很少的配置或使用默認的配置。
  • 使用 JavaConfig,避免使用 XML 的煩瑣。
  • 提供 Starters(啟動器),簡化 Maven 配置,避免依賴沖突。
  • 提供內嵌 Servlet 容器,可選擇內嵌 Tomcat、Jetty 等容器,不需要單獨的 Web 服務器。這意味著不再需要啟動 Tomcat 或其他任何中間件。
  • 提供了一系列項目中常見的非功能特性,如安全監(jiān)控、應用監(jiān)控、健康檢測等。
  • 與云計算、微服務的天然集成。

從軟件發(fā)展的角度來講,越簡單的開發(fā)模式越流行,越有活力,其可以讓開發(fā)者將精力集中在業(yè)務邏輯本身,提高軟件開發(fā)效率。Spring Boot 就是盡可能地簡化應用開發(fā)的門檻,讓應用開發(fā)、測試、部署變得更加簡單。

為什么學習Spring Boot

最近幾年,Spring 生態(tài)圈最流行的技術框架莫過于 Spring Boot 和 Spring Cloud。目前,各個企業(yè)都在推動微服務技術架構的落地,將一個復雜的應用拆分成多個小的獨立模塊,分開部署,互不干擾,從而達到松散耦合、提高開發(fā)效率和降低運維成本的目的。

Spring Boot 作為微服務框架的基礎被越來越多地應用于企業(yè)級開發(fā)中,它是 Spring Cloud 的基礎。要學習 Spring Cloud,就必須了解 Spring Boot 框架的架構和設計理念。

Spring Boot 是 Spring 生態(tài)下的一個子項目,用于快速、敏捷地開發(fā)新一代基于 Spring 框架的應用程序。同時,它將目前各種比較成熟的服務框架和第三方組件組合起來(如 Redis、MongoDB、JPA、RabbitMQ、Quartz 等),按照“約定優(yōu)于配置”的設計思想封裝成 Starters 組件。這樣,我們在 Spring Boot 應用中幾乎可以零配置地使用這些組件,達到開箱即用的效果,從而從繁雜的配置中解放出來,更加專注于業(yè)務邏輯的開發(fā)。

Spring Boot 的優(yōu)點可以概括為以下幾個方面:

  • 快速構建:使用 Spring Initializr 可以快速創(chuàng)建項目,同時提供了豐富的解決方案,便于快速集成各種解決方案,提升開發(fā)效率。
  • 簡化依賴:提供豐富的 Starters,簡化 Maven 配置,避免版本兼容問題。
  • 一鍵部署:內嵌 Servlet 容器,如 Tomcat、Jetty,能夠直接打包成可執(zhí)行 JAR 文件獨立運行,支持 Jenkins、Docker,輕松實現(xiàn)自動化運維。
  • 應用監(jiān)控:自帶 Actuator 監(jiān)控組件,輕松監(jiān)控服務的各項狀態(tài)。使用 Spring Boot Admin 可以輕松部署功能完善的應用監(jiān)控系統(tǒng)。

總的來說,Spring Boot 讓構建、編碼、配置、部署、監(jiān)控都變得非常簡單。Spring Boot 可以說是近年來 Spring 社區(qū)乃至整個 Java 社區(qū)非常有影響力的項目之一。

初次學習 Spring Boot 的讀者,千萬不要把它想得太復雜。Spring Boot 不是新的語言、新的技術,它只是把現(xiàn)有的比較流行的框架集成在一起,遵循“約定優(yōu)于配置”的原則,開箱即用,使得我們不需要再去關注那些煩瑣的配置。有了這個概念之后,就可以帶著輕松的心情去學習 Spring Boot。

什么是“約定優(yōu)于配置”

我們知道 Spring Boot 的核心設計思想是“約定優(yōu)于配置”,Spring Boot 提供的所有 Starters 都是遵循這一思想實現(xiàn)的。那么,究竟什么是“約定優(yōu)于配置”呢?

“約定優(yōu)于配置”也被稱作“按約定編程”,是一種軟件設計范式,旨在減少軟件開發(fā)者需要的配置項,這樣既能使軟件保持簡單而又不失靈活性。

從本質上來說,系統(tǒng)、類庫或框架應該約定合理的默認值,開發(fā)者僅需規(guī)定應用中不符合約定的部分。例如,如果模型中有一個名為 Product 的類,那么數(shù)據(jù)庫中對應的表就會默認命名為 product,只有在偏離這個約定時才需要定義有關這個名字的配置,例如將該表命名為 product_info。

簡單來說“約定優(yōu)于配置”就是遵循約定。如果你所用工具的約定配置符合你的要求,那么就可以省去此配置;不符合,就通過修改相關的配置來達到你所期待的方式。

“約定優(yōu)于配置”不是新的概念,許多框架使用了“約定優(yōu)于配置”的設計范式,包括 Maven、Spring、Grails、Grok、Apache Wicket 等。

Spring Boot 是 Spring 對“約定優(yōu)于配置”的最佳實踐產(chǎn)物。小到配置文件、中間件的默認配置,大到內置容器、Spring 生態(tài)中的各種 Starters,無不遵循“約定優(yōu)于配置”的設計思想。正是因為簡化的配置和眾多的 Starters,才讓 Spring Boot 變得簡單、易用、容易上手,也正是“約定優(yōu)于配置”的設計思想的徹底落地,才讓 Spring Boot 走向輝煌。

Spring、Spring Boot和Spring Cloud的關系

隨著 Spring、Spring Boot 和 Spring Cloud 的不斷發(fā)展,越來越多的開發(fā)者加入 Spring 的大軍中。對于初學者而言,可能不太了解 Spring、Spring Boot 和 Spring Cloud 這些概念以及它們之間的關系,下面我們一起來捋一捋。

Spring 是一個開源生態(tài)體系,是集大成者。其核心是控制反轉(Inversion of Control,IoC)和面向切面編程(Aspect Oriented Programming,AOP)。正是 IoC 和 AOP 這兩個核心功能成就了強大的 Spring,Spring 在這兩大核心功能上不斷地發(fā)展壯大,才有了 Spring MVC 等一系列成熟的產(chǎn)品,最終構建了功能強大的 Spring 生態(tài)帝國。

Spring Boot 是在 Spring 的基礎上發(fā)展而來的,它不是為了取代 Spring,而是為了簡化 Spring 應用的創(chuàng)建、運行、調試、部署,讓開發(fā)者更容易地使用 Spring。它將目前各種比較成熟的服務框架和第三方組件組合起來,按照“約定優(yōu)于配置”的設計思想進行重新封裝,屏蔽掉復雜的配置和實現(xiàn),最終給開發(fā)者提供一套簡單、易用、易部署、易維護的分布式系統(tǒng)開發(fā)工具包。

Spring Cloud 是基于 Spring Boot 實現(xiàn)的分布式微服務框架,它利用 Spring Boot 簡單、易用、便利的特性簡化了分布式系統(tǒng)基礎設施的開發(fā),如服務發(fā)現(xiàn)、服務注冊、配置中心、消息總線、負載均衡、斷路器、數(shù)據(jù)監(jiān)控等基礎組件都可以用 Spring Boot 的開發(fā)風格做到一鍵啟動和部署。

我們都知道,采用微服務架構,服務的數(shù)量會非常多,管理特別麻煩,而 Spring Cloud 就是一套分布式微服務治理框架,可以說是這些微服務的大管家。作為大管家 Spring Cloud 就需要提供各種組件和方案來治理與維護整個微服務系統(tǒng),比如服務之間的通信、熔斷、監(jiān)控等。Spring Cloud 利用 Spring Boot 的特性集成了開源行業(yè)中優(yōu)秀的組件,在微服務架構中對外提供了一套服務治理的解決方案。

Spring Boot 在 Spring Cloud 中起到了承上啟下的作用,如果要學習 Spring Cloud,則必須學習 Spring Boot。三者之間的關系如下圖所示。


圖 3 Spring、Spring Boot和Spring Cloud的關系

我們可以這樣理解:正是由于 IoC 和 AOP 這兩個強大的功能才有了強大的 Spring;Spring 生態(tài)不斷地發(fā)展才有了 Spring Boot;Spring Boot 開發(fā)、部署的簡化,使得 Spring Cloud 微服務治理方案徹底落地。

贊(12)
分享到: 更多 (0)

中國專業(yè)的網(wǎng)站域名及網(wǎng)站空間提供商

買域名買空間