Spring Cloud微服務架構進階》——1.2 微服務架構的流派">《Spring Cloud微服務架構進階》——1.2 微服務架構的流派
529
2025-04-05
第3章Spring Cloud的基礎:Spring Boot
工欲善其事,必先利其器。在對Spring Cloud各部分組件進行具體介紹之前,我們會對Spring Cloud微服務的基礎Spring Boot進行介紹。Spring Boot是Spring一套快速配置開發的腳手架,可以基于Spring Boot快速集成開發單個Spring應用。Spring Cloud是基于Spring Boot實現的云應用開發工具,很大一部分實現依賴于Spring Boot。可以說Spring Boot是整個Spring Cloud微服務架構的服務基礎。
本章第一小節對Spring Boot功能和特點進行概述,包括Spring Boot中的核心特性;第二小節將搭建一個Spring Boot項目來快速了解基本開發流程;在第三小節中總結了Spring Boot的配置文件及應用。
3.1 Spring Boot簡介
Spring框架功能很強大,但是就算是一個很簡單的項目,開發者也需要進行大量的配置工作,因此在Spring 4.0之后出現了Spring Boot框架,它的作用很簡單,就是幫助開發者自動配置Spring的相關依賴。Spring Boot是Pivotal團隊于2013年推出的全新項目,主要用來簡化Spring開發框架的開發、配置、調試和部署工作,同時在項目內集成了大量易于使用且實用的基礎框架。Spring Boot使用了特殊的方式來進行初始化配置,這使得開發者不需要額外定義樣板化的配置。
1. Spring Boot 2.0
2018年3月初,Spring Boot 2.0 正式發布。該版本歷經了17個月,是繼4年前Spring Boot 1.0 之后的第一個主要版本,也是第一個正式支持Spring Framework 5.0的發行版本。
Spring Boot 2.0相對之前的1.x發生了以下的變化:
不再支持JDK1.6和1.7,JDK最低要求1.8+,并支持1.9。
支持Spring webflux/webflux.fn響應式的Web編程。
提供Spring Data Cassandra、MongoDB、Couchbase和Redis的響應式自動配置及Starter POM。
支持嵌入式的Netty。
TLS配置和HTTP/2的支持:Tomcat、Reactor Netty、Undertow和Jetty。
全新的體系結構,支持Spring MVC、WebFlux和Jersey。
Spring Boot 2針對Quartz調度器提供了支持。可以加入spring-boot-starter-quartz的Starter依賴來啟用。
極大簡化了安全配置。
需要注意的是,許多配置屬性在Spring Boot 2.0中已經重命名或被刪除,為了方便從1.x升級,Spring Boot發布了一個新的spring-boot-properties-migrator模塊。只要將其作為依賴添加到項目中,它不僅會分析應用程序的環境并在啟動時打印診斷信息,還會在運行階段為項目臨時將屬性遷移至新的配置方式。
2. Spring Boot與Spring Cloud
Spring Cloud基于Spring Boot框架開發應用,為微服務開發中的架構問題提供了一整套的解決方案:如服務注冊與發現、服務消費、服務容錯、API網關、分布式調用追蹤和分布式配置管理等。
Spring Cloud與Spring Boot的聯系如下:
Spring Boot是Spring的一套快速配置腳手架,可以基于Spring Boot快速開發單個服務,Spring Cloud是一個基于Spring Boot實現的云應用開發工具。
Spring Boot專注于快速、方便集成單個服務,Spring Cloud是關注全局的服務治理框架。
Spring Boot使用了約定優先于配置的理念,有很多集成方案已經設置好,減少了用戶的配置,Spring Cloud很大一部分是基于Spring Boot實現的。
Spring Boot可以離開Spring Cloud獨立使用開發項目,但是Spring Cloud離不開Spring Boot,屬于依賴與被依賴的關系。
3. Spring Boot核心特性
從本質上來講,Spring Boot是一個框架中的框架,它專注于框架的整合,讓基礎的框架能夠更好地集成使用。它簡化了集成過程中的模板化配置,提供了本應該由開發者自身去實現的Spring Bean配置,從而使開發者能夠從繁瑣的配置中解放出來,更專注于應用程序的業務邏輯。
Spring Boot具備以下特性:
SpringApplication:提供一種簡便的方式來引導啟動Spring應用程序,通過main的方式啟動應用。
外部化配置(External Configuration):通過外部化配置的方式,可以讓開發者自定義相關配置以使相同的應用運行于不同的環境中。
Profiles:Spring Profiles可以將配置文件隔離成不同的模塊,并且使這些模塊中的配置只在特定的環境中生效。
日志(Logging):Spring Boot完善的日志系統更利于開發者調試和監控應用程序。
MVC:Spring Web MVC框架,使得開發者得心應手地搭建Web后端應用。
嵌入式容器(Embedded Containers):支持內置的Tomcat、Jetty和Undertow服務器,使得應用程序通過內嵌的服務器容器一鍵啟動。
SQL:提供了使用SQL數據庫的廣泛支持,從直接通過JDBC(JdbcTemplate)訪問數據庫到通過對象關系映射框架(如Hibernate)訪問數據庫等等。
NoSQL:集成了大量的框架來提供使用NoSQL數據庫的技術,支持Redis、MongoDB、Neo4j、Elasticsearch、Solr Cassandra、Couchbase和LDAP等諸多NoSQL數據庫,這些NoSQL數據庫的使用都可以由Spring Boot提供相關的自動配置實現。
消息系統(Message):提供了對消息系統的廣泛支持,包括JMS、RabbitMQ、Kafka和WebSocket等。
測試(Testing):提供了一系列實用工具和注解,以幫助開發者測試應用程序。
自動配置(Auto-Configuration):自動配置不僅減少了Spring框架中本該由開發者自主實現Bean相關配置,也使得開發者具備根據自己的業務需要為應用程序定義各種特定Bean的能力。
監控(Monitoring):Spring Boot的監控能夠使開發者更好地掌控應用程序的運行狀態。
在下面Spring Boot的構建中,將對其中的部分特性進行較為詳細的講解,對于其他未涉及的特性,讀者們可以通過閱讀官方文檔或者其他資料進行了解。
Spring Boot 微服務 Spring
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。