官术网_书友最值得收藏!

1.2.1 從Spring到Spring Boot

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

017-1

圖1-3 Web應用程序的拆分維度示意圖

顯然,圖1-3中的每一個組成部分都需要采用專門的技術和工具分別實現。只有將這些技術和工具有機地結合在一起,才能讓這個應用程序完整地運行起來。在這個過程中,我們就不得不考慮如下典型問題。

  • 如何簡化各層組件的開發過程?
  • 如何簡化對系統中所用到的配置的管理工作?
  • 如何有效監控系統中各個組件的運行時狀態?
  • 如何高效實現應用程序的部署?

上述問題集中暴露了傳統Spring框架缺乏高效性和簡單性的問題。針對系統開發過程中存在的上述問題,在技術體系的演進上,基于傳統Spring框架的Spring Boot誕生了。Spring Boot本質上是對傳統Spring框架的封裝和擴展,其整體架構如圖1-4所示。

018-1

圖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大幅降低了常見開發場景的實現難度,同時還充分考慮了安全性、測試性等一系列非功能開發需求。

主站蜘蛛池模板: 甘肃省| 监利县| 余庆县| 宜良县| 石嘴山市| 若羌县| 禹城市| 桑植县| 麻栗坡县| 武汉市| 深水埗区| 牙克石市| 桐庐县| 鸡西市| 汝州市| 南汇区| 三明市| 衢州市| 龙山县| 上饶市| 湘乡市| 阿坝县| 翁源县| 兴业县| 西丰县| 简阳市| 志丹县| 田林县| 如东县| 新巴尔虎右旗| 尉犁县| 罗田县| 武乡县| 涞源县| 新绛县| 邹城市| 拉孜县| 通辽市| 阿克陶县| 文登市| 乌什县|