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 社区所有即将举行的活动。

查看所有