- Spring Boot進階:原理、實戰與面試題分析
- 鄭天民
- 753字
- 2022-07-05 09:41:37
1.2.1 從Spring到Spring Boot
在日常開發過程中,構建典型的Web應用程序通常包含三個維度的工作。首先,從縱向的角度看,可以把Web應用程序分成三個主要的層次,即數據訪問(Repository)層、業務邏輯(Service)層和Web層。其次,從橫向的角度看,又需要考慮系統的監控、安全等基礎設施類需求。最后,Web應用程序并不一定獨立運行,而可能需要與其他系統之間進行有效的集成。這樣,我們可以把一個Web應用程序進行拆解,如圖1-3所示。

圖1-3 Web應用程序的拆分維度示意圖
顯然,圖1-3中的每一個組成部分都需要采用專門的技術和工具分別實現。只有將這些技術和工具有機地結合在一起,才能讓這個應用程序完整地運行起來。在這個過程中,我們就不得不考慮如下典型問題。
- 如何簡化各層組件的開發過程?
- 如何簡化對系統中所用到的配置的管理工作?
- 如何有效監控系統中各個組件的運行時狀態?
- 如何高效實現應用程序的部署?
上述問題集中暴露了傳統Spring框架缺乏高效性和簡單性的問題。針對系統開發過程中存在的上述問題,在技術體系的演進上,基于傳統Spring框架的Spring Boot誕生了。Spring Boot本質上是對傳統Spring框架的封裝和擴展,其整體架構如圖1-4所示。

圖1-4 Spring Boot整體架構
從圖1-4中可以看到,在傳統Spring框架所提供的各項開發功能的基礎上,Spring Boot還提供了一些特有組件來簡化開發過程,包括:
- 自動配置。Spring Boot把傳統Spring中基于XML的功能配置方式轉換為基于Java Config的。同時,對常見的各種功能組件均提供了默認的Spring Boot Starter依賴以簡化Maven配置。
- 度量監控。基于Spring Boot提供的Actuator組件,可以通過RESTful接口獲取JVM性能指標、線程工作狀態等運行時信息。同時,也可以使用Admin Server實現監控信息的可視化管理。
- 一鍵部署。Spring Boot應用程序內置了Web容器,開發人員只需要直接執行打包好的JAR文件就能實現服務部署和運行,而不需要預部署應用服務器。
Spring Boot大幅降低了常見開發場景的實現難度,同時還充分考慮了安全性、測試性等一系列非功能開發需求。
推薦閱讀
- Java入門經典(第6版)
- INSTANT OpenCV Starter
- Production Ready OpenStack:Recipes for Successful Environments
- 青少年Python編程入門
- UI設計全書(全彩)
- 多媒體技術及應用
- Java Web動態網站開發(第2版·微課版)
- Mastering XenApp?
- Microsoft Windows Identity Foundation Cookbook
- micro:bit軟件指南
- Implementing Splunk(Second Edition)
- Real-time Analytics with Storm and Cassandra
- Java Web程序員面試筆試寶典
- 測試基地實訓指導
- 從零開始:Qt可視化程序設計基礎教程