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,并使用了RestTemplate 的消息转换器、请求工厂、拦截器和其他底层组件……

高效解析响应式缓冲区流

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

Spring Framework 5.3 发布已经有一段时间了。该版本的一个特性是对我们的响应式多部分支持进行了重大改进。在这篇博文中,我们将分享一些在开发此功能期间获得的知识。具体来说,我们专注于在字节缓冲区流中查找标记。

多部分表单数据

每当你上传文件时,你的浏览器会将其(以及表单中的其他字段)作为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对象的响应式存储库。它与传统的非响应式存储库非常相似,不同之处在于它返回Flux<Person>(在传统情况下你将返回List<Person>),以及Mono<Person>(在传统情况下你将返回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-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 应用程序。在这篇文章中,我想介绍我们在里程碑 2 中添加的客户端功能。

RestTemplate

RestTemplate是客户端 HTTP 访问的核心 Spring 类。从概念上讲,它与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的工作大约始于两年前,就在读完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视图。
  • 修复了在将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社区中所有即将举行的活动。

查看全部