Spring Boot

Java 最主流的後端開發框架Spring Boot 其實算是早期的框架 Spring 的擴充升級,其核心的概念都有延續。過往框架 Spring 配置繁瑣,為跟上其他語言的框架,像是 Python (Django), PHP (Laravel) 等主流框架簡化配置的設計,所以才衍伸出 Spring Boot 快速整合管理 Spring 底下的各類模組 (Spring Data, Spring Security, Spring AOP、Spring MVC… ) 來達到快速開發。

主要框架核心概念就是控制反轉 (Inversion Of Control)依賴注入 (Dependency Injection) 來達到解耦,減少程式碼之間的依賴性,增加開發彈性,詳細的說明請見 Spring Boot IOC and DI

Spring Boot 在啟動時,會執行元件掃描(component scan),找出具有元件標記的類別(如 @RestController、@Service、@Component),建立成元件(bean),並且將這些 bean 放入 Spring 的容器中統一管理。由於元件的物件實體不需要自己寫程式創建 (new) 出來,而是交給框架的容器機制來建立,所以 Spring 融入了 IOC 的精神。

特色

  • 約定優於配置: 簡化開發採用許多預設值來配置應用程式,這些預設值可節省開發人員的時間和精力,改善 Java 傳統 Spring 框架通常需要在配置文件 (xml) 中進行大量的手動配置。
  • 簡單的開發:提供快速開發工具,如 Spring Initializr,可快速構建一個基本的 Spring Boot 應用程式,減少模組套件引用及專案建立時的配置,也整合 Maven 或 Grandle 等專案管理套件更加提升開發效率。
  • 嵌入式伺服器:提供嵌入式的 Tomcat、Jetty、Undertow、Netty,使開發者可以打包一個 JAR 檔案,直接運行,而不需要外部的應用伺服器。
  • 開箱即用:內建許多功能及配置,如資料庫連接、安全性、日誌紀錄和許多第三方庫的支持等。這些功能使得開發人員可以更快速地構建應用程式,而不必花費太多時間來處理底層細節。
  • 微服務整合:可輕鬆整合 Spring Cloud 框架來實現服務發現、負載均衡和數據處理等功能。

Ref: