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,我們引入了一個 HTTP 客戶端,它提供類似於 WebClient 的 API,並使用訊息轉換器、請求 factories、攔截器和 RestTemplate 的其他底層元件……

有效率地解析 Reactive Buffer Streams

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

Spring Framework 5.3 發佈已經有一段時間了。該版本中的功能之一是對我們的 Reactive Multipart 支援進行了重大改進。在這篇部落格文章中,我們分享了在開發此功能時所學到的一些知識。具體來說,我們專注於在位元組緩衝區流中尋找 Token。

Multipart Form Data

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

Spring 5.3 新功能:改進的 Cron Expressions

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

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

CronExpression 取代了 CronSequenceGenerator,後者基於 java.util.Calendar,並且存在 Spring 團隊成員都不願意解決的幾個已知問題。引入一種新類型允許我們使用更優越的 java.time API,解決…

Spring 5 新功能:Functional Web Framework

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

正如 Juergen 在昨天的部落格文章中提到的那樣,Spring Framework 5.0 的第二個里程碑引入了一個新的 functional web framework。在這篇文章中,我將提供有關該 framework 的更多資訊。

請記住,functional web framework 建立在我們在 M1 中提供的相同反應式基礎之上,並且我們也支援基於註解(即 @Controller@RequestMapping)的請求處理,請參閱 M1 部落格文章 瞭解更多資訊。

範例

我們從 範例應用程式 中的一些摘錄開始。下面是一個 reactive repository,它公開 Person 物件。它與傳統的、非反應式的 repository 非常相似,除了它會返回 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 日 | ...

去年 10 月,在 SpringOne2GX 上,我向世界介紹了 Spring Scala 專案。從那以後,我還在 Devoxx 上展示了這個專案。在這篇部落格文章中,我想提供有關此專案的更多詳細資訊,以及如何在您的 Scala 專案中使用它。

為何選擇 Spring Scala?

Spring Scala 專案的目標很簡單:讓在 Scala 中使用 Spring framework 更加容易。我們相信,有很多 Spring 使用者想要試用 Scala,但不希望放棄他們使用 Spring 的經驗。這個專案是為那些人準備的。

顯然,您今天可以在 Scala 中使用(Java)Spring Framework,而無需 Spring Scala。但這樣做在某些地方會很尷尬。就像任何程式語言一樣,Scala 有自己不同的做事方式,並且在 Scala 中使用像 Spring 這樣的純 Java framework 會讓人感覺「太 Java 式」了。Spring Scala 試圖修復…

Spring Web Services 2.0 已發佈

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

經過近一年的努力,我很高興地宣佈 Spring Web Services 2.0 已經發佈!在這篇文章中,我想回顧一些主要的新功能。

需要 Java 5+ 和 Spring 3.0

正如您可能知道的那樣,我們將 Object XML Mapping(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 寫道關於使用引入的功能將 Atom 檢視新增到 Pet Clinic 應用程式。在這篇文章中,我想介紹我們在 Milestone 2 中新增的客戶端功能。

RestTemplate

RestTemplate 是 Spring 用於客戶端 HTTP 存取的中心類別。從概念上講,它與 JdbcTemplateJmsTemplate 以及在 Spring Framework 和其他 portfolio 專案中找到的各種其他範本非常相似。這意味著,例如,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 月 08 日 | ...

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

一點背景

好的,我撒謊了:首先是一些背景資訊。如果您真的想瞭解新功能,請隨時跳到 下一節

對我來說,REST 的工作始於大約兩年前,就在閱讀了 Leonard Richardson 和 Sam Ruby 的 O'Reilly 的強力推薦書籍 RESTful Web Services 之後不久。最初,我考慮將 REST 支援新增到 Spring Web Services,但在原型上工作了幾個星期後,我清楚地意識到這不是一個非常好的選擇。特別是,我發現我必須從 Spring-MVCDispatcherServlet

Spring Web Services 1.5.1 已發佈

版本 | 2008 年 5 月 04 日 | ...

親愛的 Spring 社群:

我很榮幸地宣佈 Spring Web Services 1.5.1 已經發佈!

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

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

  • 引入了使用 OXM marshallers 的 Spring JMS MessageConverter。
  • 引入了使用 OXM marshallers 的 Spring MVC View。
  • 修正了在使用 WSS4J 結合 SAAJ 訊息時,WS-Security 簽章的問題。
  • 支援 HTTP 傳輸上的逾時設定。
  • 支援 Castor 1.2,請參閱下面的注意事項。
  • 航空公司範例現在使用 Spring Security。

以及更多。請參閱變更日誌以了解詳細資訊。

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

Cheers,

Arjen Poutsma
Spring Web Services Lead

領先一步

VMware 提供培訓和認證,以加速您的進度。

了解更多

獲得支援

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

了解更多

即將舉行的活動

查看 Spring 社群中所有即將舉行的活動。

查看全部