本週 Java 新聞與大事(2026-08-07)

📋 摘要

本週 Java 與 Spring 生態系迎來多項重要進展。Oracle 宣布 Java 將轉為更頻繁的安全性更新,確保更即時的防護。JDK 24 後虛擬執行緒的生產環境變革獲得深入探討,Netflix 等團隊面臨的瓶頸已獲改善。此外,JEP 401 值物件預覽版已確定整合至 JDK 28,為 Java 語言帶來更高效的資料型別,同時 Java 平台新數值型別的發展路徑也引發關注。

Spring AI 家族持續活躍,Embabel Agent 框架達成 1.0 里程碑,多篇教學深入介紹 Spring AI 結合 Google GenAI Chat、自動記憶工具及 Agent2Agent 協定。建置工具方面,Gradle 9.7.0 引入隔離專案功能大幅提升大型單一儲存庫效能。Quarkus 相關專案也有亮點,如 Ratchet CDI 原生排程器全面支援 Quarkus,以及 Flamme 擴充功能讓部署拓撲配置化。CI/CD 工具 GitHub Actions 的 `setup-java` 也新增了 JDK 快取功能,全面提升開發效率。

🔥 頭條新聞

  • Oracle Java 平台 Visual Studio Code 擴充功能 26.0.1 版現已發布 (Inside Java)
    Oracle Java 平台 Visual Studio Code 擴充功能 26.0.1 版現已發布。此更新為 VS Code 的 Java 開發者帶來了最新的功能與改進,提升開發體驗。新版本可能包含效能優化、錯誤修正以及對最新 JDK 版本的支援,讓開發者能更順暢地進行 Java 程式碼撰寫與偵錯。
    👉 消息來源
  • Java 將轉為更頻繁的安全性更新 (Inside Java)
    Java 將轉為更頻繁的安全性更新。Oracle 計劃改變 Java 安全性更新的頻率,從目前每季的排程(一月、四月、七月、十月)改為更頻繁地發布。這項變革旨在快速應對新發現的安全性漏洞,提供更及時的保護,對於所有 Java 應用程式的部署與維護策略將產生重要影響。開發者應密切關注此政策調整。
    👉 消息來源
  • Java 新聞彙整:OpenJDK JEPs、Jakarta EE、GraalVM、TornadoVM、Micronaut、Quarkus、JobRunr、Maven (InfoQ Java)
    本週的 Java 新聞重點涵蓋 OpenJDK JEPs 對於 JDK 28 的目標提案,以及 GPULlama3.java 的 GA 版本發布。對於關注 Java 生態系統最新動態的開發者來說,提供了全面且豐富的資訊,是掌握技術趨勢的重要來源。內容亦觸及 Jakarta EE、GraalVM、Quarkus 等重要框架與工具的更新。
    👉 消息來源
  • Embabel Agent 框架達到 1.0 版本 (InfoQ Java)
    Embabel 推出 1.0 版,為 Java 上的 AI 代理程式提供了全面的開發框架。此框架允許 Java 和 Kotlin 開發者將代理程式定義為型別化的網域物件,並基於 Spring AI 支援多種模型供應商。對於希望在 Java 生態系統中建構 AI 應用程式的開發者來說,這是一項重要的里程碑,簡化了 AI 代理程式的開發流程。
    👉 消息來源
  • Jakarta Agentic AI 達到首個里程碑 (Foojay)
    Jakarta Agentic AI 專案已發布其第一個可交付成果:1.0.0-M1 版本已上線 Maven Central,且 1.0 規範草案也已開放審查。這代表專案現有明確的 API 介面供開發者檢視與試用,對於企業級 AI 應用程式的 Java 開發者來說,是一項重要的進展,預示著在 Jakarta EE 生態系中 AI 整合的成熟。
    👉 消息來源
  • Gradle 9.7.0 正在孵化「隔離專案」功能 (2,500 個專案的單一儲存庫:配置時間從 10 分 53 秒縮短至 2 分 59 秒) (Reddit r/java)
    Gradle 9.7.0 引入了「隔離專案」的孵化功能,顯著提升了大型單一儲存庫的建置配置效能,將 2,500 個專案的配置時間大幅縮短。這項改進對於管理複雜大型專案的開發團隊來說,能有效加速開發流程,提升建置效率,是 monorepo 開發模式下的一大福音,有助於改善開發者體驗。
    👉 消息來源
  • 不再重複下載 JDK:setup-java 現已支援快取 (Reddit r/java)
    GitHub Actions 中的 `setup-java` 工具現已加入 JDK 快取功能,大幅減少在 CI/CD 流程中重複下載 JDK 的時間與網路頻寬。這項改進能顯著加速專案的建置與測試過程,提升開發團隊的持續整合效率,是所有 Java 開發者都應關注的工具更新。這將有效降低 CI/CD 管道的運行成本與時間。
    👉 消息來源
  • GitHub Setup Java Action 1 到 4 版現已棄用 (Reddit r/java)
    GitHub Actions 的 `setup-java` 工具早期版本 (1 至 4) 現已標記為棄用。這表示開發者應盡快升級到最新版本,以確保 CI/CD 流程的穩定性與安全性。此公告對於依賴 GitHub Actions 進行 Java 專案自動化建置與測試的團隊來說,是必須立即採取的行動,避免未來發生相容性問題。
    👉 消息來源
  • JEP 401:值物件 (預覽) 整合至 JDK 28 (Reddit r/java)
    JEP 401 (值物件) 提案已確認整合至 JDK 28,這將為 Java 引入新的語法結構,用於定義 immutable 且純粹儲存資料的物件。此功能有助於減少記憶體開銷、提升效能,並簡化程式碼撰寫。對於 Java 語言設計與效能優化感興趣的開發者來說,這是一個非常重要的語言演進,將影響未來程式碼風格。
    👉 消息來源
  • Java 平台新數值型別的發展路徑 (Reddit r/java)
    這篇文章探討了 Java 平台未來可能引入的新數值型別及其演進方向。內容涵蓋了對更高效、更精確或更具表達力數值處理的需求,以及相關的設計考量。對於關注 Java 語言核心演進和高性能計算的開發者,這提供了對未來語言特性的前瞻性洞察,幫助他們為未來的應用程式設計做好準備。
    👉 消息來源
  • Ratchet 0.3.1 發布:CDI 原生排程器現已支援 Quarkus、JVM 及原生應用 (Reddit r/java)
    Ratchet 0.3.1 版本釋出,這款基於 CDI 的原生工作排程器現已全面支援 Quarkus 框架,並可在 JVM 及原生環境中運行。新版本還增加了對 Oracle 與 SQL Server 資料儲存、靜態加密及叢集協調器的支援,為企業級應用提供了更強大的分散式工作排程解決方案,提升可靠性與擴展性。
    👉 消息來源
  • 實作 JEP 401:值物件 (Reddit r/java)
    此文章深入探討了 JEP 401「值物件」的具體實作細節。值物件旨在提供一種新型的資料聚合方式,強調不變性與值語義,有助於改善程式碼的清晰度、記憶體使用效率及執行緒安全。對於關注 Java 語言深層次演變及新特性實作的開發者來說,這提供了關鍵的技術資訊,為了解其實際應用奠定基礎。
    👉 消息來源
  • JobRunr 與 JobRunr Pro 8.8.0 版本發布 (Reddit r/java)
    JobRunr 及其專業版 8.8.0 釋出,為 Java 應用程式的背景工作排程提供了最新的功能與改進。此版本可能包含效能優化、新功能導入或錯誤修正,對於需要可靠、彈性背景工作處理能力的開發者來說,這是一個值得關注的更新,確保其應用程式能夠高效執行各種非同步任務,並簡化工作排程管理。
    👉 消息來源
  • Flamme:將部署拓撲視為配置而非程式碼的 Quarkus 擴充功能 (Reddit r/java)
    Flamme 是一個 Quarkus 擴充功能,它允許開發者將部署拓撲結構定義為配置,而非硬程式碼。這項創新功能使得同一個 JAR 檔案能夠以單體式應用程式或分散式系統的方式彈性部署,大幅提升了微服務架構的靈活性。對於追求高效部署與環境適應性的開發者來說,Flamme 提供了強大的解決方案,簡化了複雜的部署流程。
    👉 消息來源

📚 教學與指南

  • 播客第 65 集:「Helidon 擁抱虛擬執行緒」 (Inside Java)
    Helidon 4.4 如何擁抱虛擬執行緒、AOT 編譯與 OpenJDK。探討 Helidon 框架如何充分利用 JDK 的虛擬執行緒,以及其在預先編譯 (ahead-of-time computation) 和 OpenJDK 生態系統中的應用。這對於尋求高效能和高並行性 Java 應用程式的開發者來說,提供了重要的實作思路與技術洞察。
    👉 消息來源
  • 一場「美妙」的播客:資料專家 Gregory Green 探討 RabbitMQ、Valkey、Gemfire、Data Flow 等技術 (Spring Blog)
    本集深入探討了 GemFire、RabbitMQ Streams 和 Dataflow 等數據技術,內容涵蓋即時事件處理、主動-主動一致性、全文檢索與向量檢索。對於希望建構彈性且智慧數據堆疊的 Spring 開發者,提供了實用的架構設計與實作策略。透過此播客能了解這些技術如何協同工作,打造高效的資料處理方案。
    👉 消息來源
  • 播客:JVM 上的 WebAssembly:功能演進、效能與轉移至 Endive (InfoQ Java)
    Andrea Peruffo 探討 WebAssembly 如何從瀏覽器擴展到伺服器端的 JVM,並深入分析其在 JVM 環境下的效能表現與功能演進。此討論涵蓋了 WebAssembly 的未來發展,特別是轉移到 Endive 專案的影響,對於關注跨平台技術與 JVM 效能的開發者具有參考價值,能了解其潛力與實作細節。
    👉 消息來源
  • JDK 24 後的虛擬執行緒:生產環境 Java 的變革 (InfoQ Java)
    JDK 24 移除了曾導致 Netflix 等團隊在 Java 21 上遇到瓶頸的監視器相關載體執行緒固定問題,而 JDK 25 LTS 則有後續的改進。這篇文章深入分析了虛擬執行緒在最新 JDK 版本中的演進,以及這些變化對實際生產環境中 Java 應用程式的並行處理與效能優化的重大影響。開發者應了解這些更新以最佳化應用程式。
    👉 消息來源
  • Google GenAI Chat 與 Spring AI 介紹 (Baeldung)
    本文教學如何將 Google 的 Gemini 模型與 Spring AI 框架整合,以便在 Java 應用程式中利用生成式人工智慧功能。對於希望快速入門 AI 程式開發並結合 Spring 生態系統的開發者來說,這是一個實用的指南,能協助建構智慧型的聊天應用程式。文章提供了具體的程式碼範例與實作步驟。
    👉 消息來源
  • Spring AI 自動記憶工具 (Baeldung)
    深入探討 AI 代理程式如何決定記憶使用者或程式流程的相關資訊,並利用 Spring AI 的自動記憶工具來實作。這篇文章對於建構具有上下文感知能力的智慧型代理程式至關重要,能幫助開發者理解和實作記憶管理,進而提升 AI 應用程式的互動品質與效率。對於複雜的對話系統尤其有益。
    👉 消息來源
  • 探索 Spring AI 的 Agent2Agent 協定 (A2A) (Baeldung)
    學習如何讓 AI 代理程式互相發現並協同工作。這篇文章介紹了如何在 Spring AI 中實作 A2A 協定,實現多個 AI 代理程式之間的互動與協作,對於建構複雜的智慧系統或多代理程式應用程式的開發者來說,提供了關鍵的實作範例與架構思路。這有助於設計更為強大且模組化的 AI 解決方案。
    👉 消息來源
  • 在 Maven 應用程式中嵌入 DuckDB (及其非資料庫用途) (Foojay)
    DuckDB 被譽為「分析版的 SQLite」,作為一個內嵌式資料庫引擎,它無需獨立伺服器即可在應用程式內部運行。這篇文章深入探討如何將 DuckDB 整合到 Maven 專案中,並展示其在資料分析、輕量級儲存等非傳統資料庫場景的應用潛力,對需要高效能、無伺服器資料處理的 Java 開發者極具參考價值。
    👉 消息來源
  • 無需樣板程式碼的冪等 REST 端點 (Foojay)
    本文探討如何透過簡潔的實作,確保 REST API 端點的冪等性,避免重複請求導致的錯誤(如重複扣款)。文章介紹了一個專為 Spring Boot 設計的開源專案 `AvoOnce`,透過單一註解即可輕鬆實現冪等性。這對於建構穩健、可靠的微服務應用程式的開發者來說,提供了極具實用價值的解決方案,大幅減少開發負擔。
    👉 消息來源
  • 如何建構 Spring Boot 詐欺評分服務 (Foojay)
    本文教學如何在 Spring Boot 專案中整合機器學習模型,建構一個詐欺評分服務。與傳統上呼叫 Python 服務不同,這篇文章展示了在 Java 生態系統中直接實作機器學習的策略,避免引入第二種執行環境與部署流程,對於尋求將 AI 應用於業務邏輯的 Java 開發者來說,提供了實用的端到端指南。
    👉 消息來源
  • HTTP QUERY 方法解析:RFC 10008、生態系統採納與 Quarkus 實作 (Foojay)
    本文深入探討 HTTP QUERY 方法 (RFC 10008) 的設計理念、在不同生態系統中的採納現況,並提供了一個 Quarkus 框架下的實作範例。對於複雜的搜尋 API 設計,QUERY 方法能有效解決 GET 請求的 URI 長度限制和敏感資訊暴露問題,為開發者提供了更安全、彈性的 API 設計選項,提升 API 的可用性。
    👉 消息來源
  • 我透過修復其他工具的開放錯誤,打造了一個 Java 版本管理器 (DZone Java)
    這篇文章分享了作者如何因現有 Java 版本管理工具的不足與問題,決定自行開發一個解決方案的歷程。內容涵蓋了 Java 開發者在多版本環境中常見的挑戰,以及如何設計一個更為穩定、高效的版本管理工具。對於頻繁切換 Java 版本的開發者來說,提供了實用的工具選擇與開發思路,提升開發流程的順暢度。
    👉 消息來源
  • 重新思考 Java 設計模式:從物件導向到函數式程式設計 (DZone Java)
    本文深入探討 Java 設計模式在物件導向 (OOP) 與函數式程式設計 (FP) 典範下的差異與演變。文章闡述了如何將傳統 OOP 設計模式的理念,轉換或重新詮釋為更符合 FP 風格的實作方式,對於希望將函數式概念融入 Java 程式設計的開發者,提供了寶貴的視角與實踐指導,有助於撰寫更簡潔、可維護的程式碼。
    👉 消息來源
  • ORM 正在扼殺你的效能 🔪 (Reddit r/java)
    本文探討了物件關係對映 (ORM) 在某些情境下可能對應用程式效能造成的負面影響。文章分析了 ORM 抽象層的開銷、N+1 查詢問題以及複雜查詢最佳化的挑戰。對於正在評估或優化資料庫存取策略的 Java 開發者來說,這提供了重新思考 ORM 使用時機和最佳實踐的寶貴視角,鼓勵更深入地了解底層運作。
    👉 消息來源

💬 社群討論

  • 對於初級開發者而言,Spring Boot 和 React 仍然重要且值得學習嗎? (Reddit r/java)
    此社群討論探討了 Spring Boot 和 React 這兩個技術棧在當前就業市場中對初級開發者的重要性與學習價值。討論內容可能涵蓋技術趨勢、就業前景、學習資源等。對於正在規劃學習路徑或求職的 Java 初學者來說,這提供了實用的市場洞察與社群建議,幫助他們做出明智的技術選擇。
    👉 消息來源
  • OpenJDK 郵件搜尋更新:新的 Elasticsearch 後端、相關性排名與減少機器人郵件干擾 (Reddit r/java)
    OpenJDK 郵件搜尋服務進行了重大更新,引入了新的 Elasticsearch 後端,顯著提升了搜尋效率與結果相關性。此外,更新還減少了來自機器人郵件的干擾。這項改進讓開發者更容易在 OpenJDK 郵件列表中找到所需的資訊,促進社群交流與協作,對參與 OpenJDK 開發的貢獻者尤其有幫助。
    👉 消息來源

💡 心得總結

觀察本週技術新聞,可以看到 Java 生態系統正以驚人的速度演進,特別是在 AI 應用和高並行處理方面。對台灣的 Java 開發者而言,這是一個既充滿挑戰也充滿機會的時代。建議社群成員持續關注 JDK 的新特性(如虛擬執行緒與值物件),並積極探索 Spring AI 和 Quarkus 等現代框架在 AI 解決方案及微服務架構中的潛力。透過參與社群討論與實踐,我們能共同提升台灣在國際 Java 技術領域的競爭力,並將這些前沿技術應用於解決本地產業的實際問題。

本篇文章的內容為老喬原創、二創或翻譯而來。雖已善盡校對、順稿與查核義務,但人非聖賢,多少仍會有疏漏之處難以避免。如果大家有任何問題、建議或指教,都歡迎在底下留言與老喬討論!

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

17 − 11 =

返回頂端