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 的訊息轉換器、請求工廠、攔截器以及其他底層元件……

響應式 Buffer 流的高效解析

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

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

Multipart 表單資料

每當你上傳檔案時,你的瀏覽器會將其以及表單中的其他欄位作為 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 取代了 CronSequenceGenerator,後者基於 java.util.Calendar,並且存在一些 Spring 團隊成員都不願意解決的已知問題。引入一個新的型別讓我們能夠使用更優秀的 java.time API,解決……

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

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

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

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

示例

我們先來看一些示例應用程式的摘錄。下面是一個暴露 Person 物件的響應式倉庫。它與傳統的非響應式倉庫非常相似,不同之處在於傳統情況下你返回 List<Person> 的地方,它返回 Flux<Person>;傳統情況下你返回 Person 的地方,它返回 Mono<Person>Mono<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 的經驗。這個專案就是為這些人而設的。

顯然,你今天可以在沒有 Spring Scala 的情況下在 Scala 中使用(Java)Spring Framework。但這樣做在某些地方會很不方便。就像任何程式語言一樣,Scala 有自己獨特的方式來處理事務,在 Scala 中使用像 Spring 這樣的純 Java 框架會讓人感覺“太 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 3.0 中使用 Spring-WS 1.5(帶有其自己的 OXM 模組)會有些問題。

從 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-* 的分散式架構的一個引人注目的替代方案。因此,當我們開始規劃 Spring 下一個主要版本——3.0 版本的工作時,我們非常清楚必須專注於使“RESTful”Web 服務和應用程式的開發更加容易。現在,“什麼是 RESTful”以及“什麼不是 RESTful”本身就可以成為一篇全新的文章的主題;在這篇文章中,我將採用更實際的方法,重點介紹我們新增到 Spring MVC 的 @Controller 模型中的功能。

一點背景知識

好的,我撒謊了:先來點背景知識。如果你真的想了解新功能,請隨意跳到下一節

對我來說,REST 相關的工作始於大約兩年前,在我閱讀了 Leonard Richardson 和 Sam Ruby 合著的、強烈推薦的 O'Reilly 出版的《RESTful Web Services》一書後不久。最初,我曾考慮在 Spring Web Services 中新增 REST 支援,但在原型開發了幾周後,我清楚地意識到這不是很合適。特別是,我發現我不得不復制 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,見下面的說明
  • 航空示例現在使用 Spring Security

等等。更多詳情請參閱更新日誌。

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

祝好,

Arjen Poutsma
Spring Web Services 負責人

領先一步

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

瞭解更多

獲取支援

Tanzu Spring 透過一個簡單的訂閱提供對 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案。

瞭解更多

即將舉行的活動

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

檢視全部