Dave Syer
Spring Cloud、Spring Boot、Spring Batch 的創始人,Spring Security OAuth 的領導者,以及 Spring Integration、Spring Framework、Spring AMQP、Spring Security 的積極貢獻者。經驗豐富、以交付為中心的架構師和開發經理。曾使用 Spring 設計和建構成功的企業軟體解決方案,並在全球主要機構中實施。
超媒體與瀏覽器增強
目前前端開發主要由大型 JavaScript 客戶端框架主導。這有很多充分的理由,但對於許多用例來說可能非常低效,而且框架工程變得極其複雜。在本文中,我想探索一種不同的方法,一種更有效率、更靈活的方法,由更小的構建模組建構而成,並且非常適合 Spring 等伺服器端應用程式框架(或各種伺服器端語言中的類似工具)。這個想法是擁抱超媒體的概念,想像一下下一代瀏覽器會…
使用 Spring Boot 應用程式的客戶端開發 - 第 2 部分
使用 SSE 串流的純 Javascript
Vue 在這個簡單的 HTML 替換用例中並沒有真正增加太多價值,而且它對 SSE 範例完全沒有增加任何價值,因此我們將繼續以原生 Javascript 實作它。這是一個串流標籤
<div class="tab-pane fade" id="stream" role="tabpanel">
<div class="container">
<div id="load"></div>
</div>
</div>
以及一些用於填充它的 Javascript
<script type="module">
var events = new EventSource("/stream");
events.onmessage = e => {
document.getElementById("load").innerHTML = e.data;
}
</script>
使用 React 的動態內容
…使用 Spring Boot 應用程式的客戶端開發
本文探討了 Spring Boot 開發人員在應用程式的客戶端(瀏覽器)端使用 Javascript 和 CSS 的不同選項。計劃的一部分是探索一些在 Spring Web 應用程式的傳統伺服器端渲染世界中運作良好的 Javascript 函式庫。這些函式庫往往對應用程式開發人員來說是輕量級的,因為它們讓您可以完全避免 Javascript,但仍然擁有良好的漸進式「現代」UI。我們也研究了一些更「純粹」的 Javascript 工具和框架。這有點像一個光譜,所以作為 TL;DR 在此…
RSocket 的「Wiremock」
如果您的應用程式在運行時連線到 RSocket 伺服器,您該如何測試它?我們需要一種方法讓測試啟動伺服器並告訴我們它正在監聽的位置,然後我們需要能夠註冊請求和回應範例(又名「合約」)。這就是這個 專案 提供的功能 - 它就像 Wiremock,但用於 RSocket。
開始使用
使用該專案最簡單的方法是作為 JUnit (Jupiter) 擴充功能,例如
@SpringBootTest
@ExtendWith(RSocketServerExtension.class)
class SocketsApplicationTests {
...
}
安裝此擴充功能後,Spring Boot 測試將在 RSocket 伺服器監聽 test.rsocket.server.port
給定的埠上運行,因此測試可以直接連線到它,或者(更有可能)它正在測試的程式碼將連線到它。您可能需要透過 @SpringBootTest
註解告訴它連線到哪裡,例如,如果應用程式正在尋找運行時呼叫的屬性 rsocket.port
…
Spring Cloud Function 原生映像檔
這是 Spring Cloud Function 在 AWS Lambda 上的記憶體與帳單的最新圖表。它顯示了帳單指標 GBsec 作為 Lambda 中記憶體分配的函數,用於兩個自訂運行時,一個是純 Java,另一個是使用 GraalVM Native Image,正如 Andy Clement 最近在這篇部落格中描述的那樣
在這兩種情況下,功能都是相同的(一個簡單的 POJO-POJO 函數),並且它們都僅顯示冷啟動的結果。暖啟動(函數在請求進入時已處於活動狀態)更快更便宜(除了最小的記憶體設定外,它們的成本都相同…
Spring Boot 中的手動 Bean 定義
假設您想使用 Spring Boot,但您不想 @EnableAutoConfiguration
。您到底應該怎麼做?在 先前的文章 中,我展示了 Spring 本質上是快速且輕量級的,但改善啟動時間的簡短建議之一是考慮手動匯入 Spring Boot 自動配置,而不是自動吸取所有配置。對於所有應用程式來說,這可能不是正確的做法,但它可能會有所幫助,並且了解選項是什麼肯定不會有壞處。在這篇文章中,我們探索了各種手動配置的方法,並評估了它們的…
Spring 有多快?
效能一直是 Spring 工程團隊的首要任務之一,我們不斷監控並回應變化和回饋。最近(在過去 2-3 年中)完成了一些相當密集和精確的工作,本文旨在幫助您找到這些工作的成果,並學習如何衡量和提高您自己應用程式的效能。標題是 Spring Boot 2.1 和 Spring 5.1 對啟動時間和堆積使用量進行了一些非常好的最佳化。這是一個透過測量堆積受限應用程式的啟動時間製作的圖表
如同您…
容器中的 Spring Boot
許多人正在使用容器來封裝他們的 Spring Boot 應用程式,而建構容器並非易事。本文是針對 Spring Boot 應用程式的開發人員,容器對於開發人員來說並不總是一個好的抽象概念 - 它們迫使您學習和思考非常底層的問題 - 但您偶爾會被要求建立或使用容器,因此了解構建模組是值得的。在這裡,我們的目標是向您展示,當您面臨需要建立自己的容器的前景時,您可以做出的一些選擇。
我們將假設您知道如何建立和建構基本的 Spring Boot 應用程式。如果您不知道,請前往 入門指南 之一,例如關於建構 REST 服務 的指南。從那裡複製程式碼並練習下面的一些想法。還有一個關於 Docker 的入門指南…
Spring Cloud Function 中的函數式 Bean 註冊
Spring Cloud Function 在 2.0 中(仍在里程碑階段)有一些新功能,可能最引人注目的是能夠「完全函數式化」。這是透過 Spring Boot 2.1 以及 Spring Framework 5.1 中的變更實現的,這意味著 Spring 應用程式中 Bean 定義的不同思維方式,以及啟動效能的顯著提升。
AWS 成本節省
總是從圖片開始是好的,尤其是當它講述一個故事時。這是一個圖表,顯示了 Spring Cloud Function 2.0 相較於 1.0 的改進,比較了冷啟動的成本…