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

查看全部