Arjen Poutsma

Arjen Poutsma

校友
博文Arjen Poutsma

Spring 6.1 新特性:RestClient

工程 | 2023年7月13日 | ...

Spring Framework 6.1 M2 引入了 RestClient,這是一個新的同步 HTTP 客戶端。顧名思義,RestClient 提供了 WebClient 的流暢 API,並沿用了 RestTemplate 的基礎設施。

十四年前,當 RestTemplate 在 Spring Framework 3.0 中引入時,我們很快發現將 HTTP 的所有功能都暴露在一個類似模板的類中會導致過多的過載方法。因此,在 Spring Framework 5 中,我們為響應式 WebClient 使用了流暢的 API。透過 RestClient,我們引入了一個提供類似於 WebClient API 的 HTTP 客戶端,它使用了 RestTemplate 的訊息轉換器、請求工廠、攔截器以及其他底層元件……

高效解析響應式緩衝區流

工程 | 2021年9月14日 | ...

Spring Framework 5.3 釋出已有一段時間了。該版本的一個特性是對我們的響應式 Multipart 支援進行了重大改進。在這篇博文中,我們分享了在開發此功能時學到的一些知識。具體來說,我們重點討論了在位元組緩衝區流中查詢標記的方法。

Multipart Form Data

每當您上傳檔案時,瀏覽器都會將檔案以及表單中的其他欄位作為 multipart/form-data 訊息傳送到伺服器。這些訊息的精確格式在 RFC 7578 中描述。如果您提交一個包含單個名為 foo 的文字欄位和一個名為 file 的檔案選擇器的簡單表單,則 multipart/form-data……

Spring 5.3 新特性:改進的 Cron 表示式

工程 | 2020年11月10日 | ...

如果您經常收聽 A Bootiful Podcast,您可能已經聽說過我們對 Spring Framework 的 cron 支援所做的改進。Cron 表示式主要透過 @Scheduled 註解在 Spring 應用程式中使用。在 Spring 5.3 中,我們引入了 CronExpression 類,它代表——您猜對了——一個 cron 表示式

CronExpression 取代了基於 java.util.CalendarCronSequenceGenerator,後者存在一些已知的、Spring 團隊成員不願解決的問題。引入新型別使我們能夠使用更優越的 java.time API,解決了……

Spring 5 新特性:函式式 Web 框架

工程 | 2016年9月22日 | ...

正如昨天在 Juergen 的部落格文章中提到的,Spring Framework 5.0 的第二個里程碑引入了一個新的函式式 Web 框架。在這篇文章中,我將提供更多關於該框架的資訊。

請記住,函式式 Web 框架建立在我們 M1 中提供的相同響應式基礎上,並且我們也支援基於註解(即 @Controller@RequestMapping)的請求處理,有關更多資訊,請參閱 M1 部落格文章

示例

我們從 我們的示例應用程式 中摘錄了一些片段。下面是一個公開 Person 物件的響應式儲存庫。它與傳統的非響應式儲存庫非常相似,不同之處在於它返回 Flux<Person> 而非傳統上的 List<Person>,以及 Mono<Person> 而非 PersonMono<Void> 用作完成訊號:指示儲存何時完成。有關這些 Reactor 型別的更多資訊,請參閱 Dave 的部落格文章……

Spring Web Services 2.2.0 釋出

釋出 | 2014年5月22日 | ...

我很高興地宣佈 Spring Web Services 2.2.0.RELEASE 已釋出!這是 2.2 釋出週期中的第一個版本。2.2 的主要新特性是引入了 Spring-WS 的程式碼配置支援。這意味著您現在可以使用簡單的 @EnableWs 註解來配置 Spring-WS。例如:

@Configuration
@EnableWs
@ComponentScan(basePackageClasses = { MyConfiguration.class })
public class MyWsConfiguration {

  // @Beans go here
}

有關此主題的更多資訊,請參閱 @EnableWs 的 javadoc。您還可以在 更新的參考文件 中閱讀有關此新功能的更多資訊。要檢視完整的更改列表,請參閱 更新日誌……

介紹 Spring Scala

工程 | 2012年12月10日 | ...

去年十月,在 SpringOne2GX 大會上,我向全世界介紹了 Spring Scala 專案。此後,我還在 Devoxx 上介紹了這個專案。在這篇博文中,我想進一步詳細介紹這個專案以及如何在您的 Scala 專案中使用它。

為什麼選擇 Spring Scala?

Spring Scala 專案的目標很簡單:讓在 Scala 中使用 Spring 框架變得更容易。我們相信有許多 Spring 使用者想要嘗試 Scala,但又不想放棄他們使用 Spring 的經驗。這個專案就是為這些人準備的。

顯然,您現在可以在 Scala 中使用(Java)Spring 框架,而無需 Spring Scala。但在某些地方這樣做會很彆扭。就像任何程式語言一樣,Scala 有其自己獨特的工作方式,在 Scala 中使用純 Java 框架(如 Spring)會感覺“太 Java 化”。Spring Scala 試圖解決……

Spring Web Services 2.0 釋出

工程 | 2011年1月11日 | ...

經過近一年的開發,我很高興地宣佈 Spring Web Services 2.0 已經發布!在這篇文章中,我將介紹一些主要的新特性。

需要 Java 5+ 和 Spring 3.0

正如您可能已經知道的,我們將物件 XML 對映 (OXM) 模組從 Spring-WS 專案移到了 Spring 3.0 中。因此,由於 org.springframework.oxm 包中存在衝突的類,使用 Spring-WS 1.5(帶有自己的 OXM 模組)與 Spring 3.0 可能會有些問題。

從 2.0 版本開始,我們不再將 OXM 模組作為 Spring-WS 的一部分發布,而是依賴 Spring 的 OXM。因此,Spring Web Services 2.0 需要 Spring 3.0 才能工作。通常,我們傾向於在版本要求方面更寬鬆一些,不一定要求最新的 Spring 版本,但這……

Spring 3 中的 REST:RestTemplate

工程 | 2009年3月27日 | ...

在早先的一篇博文中,我介紹了我們為 Spring @MVC 3.0 版本新增的 REST 功能。後來,Alef 撰文介紹瞭如何使用引入的功能為 Pet Clinic 應用程式新增 Atom 檢視。在這篇博文中,我想介紹我們在里程碑 2 中新增的客戶端功能。

RestTemplate

RestTemplate 是 Spring 中用於客戶端 HTTP 訪問的核心類。從概念上講,它與 JdbcTemplateJmsTemplate 以及 Spring Framework 和其他產品組合專案中的各種其他模板非常相似。這意味著,例如,RestTemplate 一旦構建就是執行緒安全的,並且您可以使用回撥來定製其操作。

RestTemplate 方法

模板的主要入口點以六個主要的 HTTP 方法命名

HTTPRestTemplate
DELETEdelete(String, String...)
GETgetForObject(String, Class, String...)
HEADheadForHeaders(String, String...)
OPTIONSoptionsForAllow(String, String...)
POSTpostForLocation(String, Object, String...)
PUTput(String, Object, String...)

這些方法的名稱清楚地表明瞭它們呼叫的 HTTP 方法,而名稱的第二部分則表示返回的內容。例如,getForObject()將執行 GET 請求,將 HTTP 響應轉換為您選擇的物件型別,並返回該物件。postForLocation將執行 POST 請求,將給定物件轉換為 HTTP 請求,並返回新建立物件所在的響應 HTTP Location 頭……

Spring 3 中的 REST:@MVC

工程 | 2009年3月8日 | ...

在過去的幾年裡,REST 已成為 SOAP/WSDL/WS-*-based 分散式架構的一個引人注目的替代方案。因此,當我們開始規劃 Spring 的下一個主要版本——3.0 的工作時,我們非常清楚必須專注於簡化“RESTful”Web 服務和應用程式的開發。現在,什麼是“RESTful”以及什麼不是“RESTful”可以作為一篇全新文章的主題;在這篇文章中,我將採取更實際的方法,重點介紹我們為 Spring MVC 的 @Controller 模型新增的功能。

一點背景

好吧,我撒謊了:首先有一些背景。如果您真的想了解新功能,請隨意跳到下一節

對我來說,REST 的工作大約在兩年前開始,就在閱讀了 O'Reilly 出版的 Leonard Richardson 和 Sam Ruby 合著的強烈推薦書籍 RESTful Web Services 之後。最初,我考慮將 REST 支援新增到 Spring Web Services 中,但在原型上工作了幾周後,我清楚地認識到這不太合適。特別是,我發現我必須複製 Spring-MVC 的大部分邏輯DispatcherServlet

Spring Web Services 1.5.1 釋出

釋出 | 2008年5月4日 | ...

親愛的 Spring 社群:

我很高興地宣佈 Spring Web Services 1.5.1 已經發布!

下載 | 站點 | 更新日誌 | 公告

這是 Spring-WS 1.5 系列的第一個錯誤修復和增強版本。它修復了自 1.5.0 以來報告的所有錯誤,並引入了框架中的各種增強功能

  • 引入了使用 OXM 編組器的 Spring JMS MessageConverter
  • 引入了使用 OXM 編組器的 Spring MVC View
  • 修復了結合 WSS4J 和 SAAJ 訊息使用時的 WS-Security 簽名問題
  • 支援 HTTP 傳輸的超時
  • 支援 Castor 1.2,請參閱下面的註釋
  • Airline 示例現在使用 Spring Security

等等。請參閱更新日誌瞭解詳情。

請注意,由於向後相容性問題,CastorMarshaller 現在需要 Castor 1.2 或更高版本。

乾杯,

Arjen Poutsma
Spring Web Services 負責人

領先一步

VMware 提供培訓和認證,助您加速進步。

瞭解更多

獲得支援

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案,只需一份簡單的訂閱。

瞭解更多

即將舉行的活動

檢視 Spring 社群所有即將舉行的活動。

檢視所有