Spring Framework 6 教學 (一)

Spring Framework 6 開發環境準備,先在電腦中確定有以下的軟體,沒有的話底下也幫你,準備好下載連結。

  1. Java 17
  2. Tomcat 10
  3. Eclipse

小提醒:記得下載的時候,位元數必須選擇要一樣,比如:都是32位元或是64位元的版本。

Spring Framework 6 需要 Java 17 下載

  • 目前 Oracle 下載 JDK 比之前容易多,至少不用在登入會員之後才能下載。
Java 17 下載
Spring Framework 6 需要 Java 17 下載

Spring Framework 6需要 Tomcat 10 下載

支援的版本比較有趣了。

Tomcat 10.0.X為 Servlet 5.0 與 JSP 3.0 版本。

Tomcat 10.1.X 為 Servlet 6.0 與 JSP 3.1 版本。

而且,從Tomcat 10 之後,原本的Java EE 都改為 Jakarta EE。

也就是說以前在 Tomcat 9 之前可以運作的程式,沒有辦法直接上到 Tomcat 10。

因為 Package 名稱都變了,程式import 的部分都要改了。

Tomcat 10.1.X 下載
Tomcat 10.1.X 下載

如: import javax.servlet也變成import jakarta.servlet

Spring Framework 6需要 Eclipse Java EE 下載

下載 Eclipse 各個版本,要注意搭配的 Java 版本,有可能最新的 Eclipse 版本,需要最新的Java 版本。

因此,不一定要使用最新的Eclipse

為了要跟 Jdk17 搭配,所以,我們採用 2023-09 R 的版本。

有兩種選擇。

下載 Eclipse Java EE 安裝程式,如下圖:

下載 Eclipse  Java EE 安裝程式
下載 Eclipse Java EE 安裝程式

下載後點擊安裝檔 eclipse-inst-jre-win64.exe ,會開始安裝。

相關資料夾依照自己的需要進行調整。

不過,過程中可能會遇到網路的問題,不過,稍等一會就可以了。

開始安裝eclipse-inst-jre-win64.exe
安裝完成

安裝完成之後,會顯示綠色的 LAUCH,按下去之後就會啟動 Eclipse。

或是 直接下載壓縮檔,如下圖:

解壓縮之後,進入資料夾內找到 eclipse.exe,就可以啟動 Eclipse。

Eclipse 啟動畫面 Spring Framework 6 可以開始進行了

好了,到目前為止,準備得差不多了。

Spring 6 可以使用 Java 8 嗎?

不行,至少需要 JDK 17

Spring 6 支援 Jakarta 嗎?

Spring 6 升級到支援 Jakarta EE 9 ,Jakarta 並取代了傳統的 javax package 。

Spring 6 可以使用 hibernate 嗎?

Spring 需要 Hibernate ORM 5.5 以上,並用於Spring 的 HibernateJpaVendorAdapter。

Spring Framework 6 對 Java 工程師有甚麼好處?

Spring Framework 6 完美地契合了現代 Java 開發的需求,尤其是在性能、擴展性以及雲原生應用的支援上。以下是我認為 Spring 6 帶來的幾個主要優勢:

1. Java 17 的原生支援

Spring 6 要求最低版本為 Java 17,這對我來說是件好事,因為 Java 17 帶來了一系列新特性,像是 sealed classesrecords,這些功能不僅能讓代碼變得更加簡潔,而且也提升了我們在使用 Java 開發時的靈活性和安全性。

2. 完全過渡到 Jakarta EE 9+

Spring 6 完全基於 Jakarta EE 9+,從 javax.* 變成 jakarta.*,這是一個重大的變動。這個過渡意味著我們可以更好地利用 Jakarta EE 的最新標準,未來也會有更好的相容性,對長期維護的項目非常有幫助。

3. AOT 編譯支援

AOT(Ahead-of-Time)編譯是一個我非常期待的功能,特別是在使用 GraalVM 時。我們現在可以在編譯階段對應用進行優化,大幅縮短應用啟動時間,對於那些需要快速啟動的微服務和容器化應用來說,這是非常重要的性能提升。

4. 更佳的性能表現

Spring 6 做了很多性能優化,特別是針對原生鏡像(Native Image)支援。我們現在可以利用 GraalVM 生成高效的本地執行檔,這讓我們的 Spring 應用在雲環境中運行得更加快速且資源佔用更少。

5. 模組化和微服務架構的增強

對於構建微服務架構的應用來說,Spring 6 提供了更靈活的模組化支援。這讓我可以更加輕鬆地開發解耦的系統,且能更快地擴展應用程式,這對我們的微服務開發架構來說無疑是一大福音。

6. 更強大的響應式編程支持

可以使用 Spring WebFlux 來構建高併發的系統,Spring 6 繼續在這方面進行強化,特別是針對反應式編程場景的優化,讓我能夠在應對大規模併發需求時更具信心。

7. 現代化 API 整合

Spring 6 充分利用了 Java 17 的新特性,API 設計更加簡潔現代化。像是對 records 的支援,讓我們能更輕鬆地處理不可變數據結構,這在代碼可讀性和維護性上都有很大幫助。

8. 更好的可觀測性

Spring 6 與 Micrometer 3 和 OpenTelemetry 的整合,讓我們可以更全面地監控應用的性能和行為。在分佈式系統中,能夠快速定位性能瓶頸和錯誤,這對於保持系統穩定性至關重要。

9. 約定優於配置

雖然這一直是 Spring 的一個核心理念,但 Spring 6 進一步簡化了自動配置機制。我們現在可以更加專注於業務邏輯,而不需要花費過多精力在框架配置上,這對於提升開發效率非常有幫助。

10. 強化的安全支援

隨著 Spring Security 的升級,Spring 6 更好地支援 OAuth 2.1 和 OpenID Connect 1.0 等現代安全協定,並強化了整體的安全性。這讓我在處理安全需求時,能夠更加從容自信。

總體來說,Spring 6 對於我們這些追求高效開發和現代化架構的 Java 開發人員來說,是一個非常值得投入的升級,它讓我們能夠更好地應對未來的技術挑戰。