David Turanski

David Turanski

校友
博客文章作者David Turanski

测试 Spring Cloud Stream 应用程序 - 第 1 部分

工程 | 2020 年 12 月 15 日 | ...

这篇文章是博客系列的一部分,该系列探讨了基于 Java 函数的全新设计的 Spring Cloud Stream 应用程序。本期分为两部分,探讨了测试用于实现流应用程序的函数的策略。我们将特别关注与外部资源集成的函数,这带来了额外的测试挑战。大多数预打包的源和接收器应用程序都是这种情况。为了说明这一点,我们将逐步介绍一个示例couchbase-sink应用程序。在第 1 部分中,我们将重点关注接收器所依赖的核心函数……

测试 Spring Cloud Stream 应用程序 - 第 2 部分

工程 | 2020 年 12 月 15 日 | ...

这是测试流应用程序的第 2 部分。在第 1 部分中,我们实现并测试了我们的示例couchbase-sink应用程序所需的核心函数。函数级别的测试涵盖了预期的成功和错误场景,并依赖于Testcontainers 来配置 Couchbase 集群。这篇文章假设您已阅读第 1 部分,并在其结束的地方继续。

Couchbase 接收器

在第 1 部分中,我们验证了我们编写的将数据插入 Couchbase 的函数按预期工作。我们现在可以使用该函数(作为java.util.Consumer公开)来实现接收器,以用于使用…构建的数据管道。

案例研究:使用 Spring Cloud Data Flow 进行远程文件导入

工程 | 2020 年 9 月 29 日 | ...

本文是博客系列的一部分,该系列探讨了基于 Java 函数的全新设计的 Spring Cloud Stream 应用程序。在本章中,我们将探讨如何使用Spring Cloud Stream 应用程序Spring Cloud Data Flow来实现一个非常常见的 ETL 用例:从远程服务导入文件。具体来说,我们将了解如何从 S3、SFTP 和 FTP 导入文件。

以下是迄今为止博客系列中包含的内容

案例研究:HTTP 请求函数和处理器

工程 | 2020 年 8 月 17 日 | ...

介绍

我们这个系列文章首先介绍了新的基于 Java 函数的流应用程序函数组合上一篇文章介绍了构建简单的流应用程序并在 Spring Cloud Data Flow 中运行它的教程。今天,我们将探讨HTTP 请求函数,并提供一些关于如何使用它的示例。

如果您错过了本系列中的先前文章,请查看:

案例研究:使用 HTTP 源和 JDBC 接收器构建和运行流应用程序

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

介绍

在本系列文章中,我们已经介绍了新的基于 Java 函数的流应用程序函数组合。我们还提供了关于如何从提供程序创建源以及从使用者创建接收器的详细示例。在这里,我们将继续这段旅程,并进行后续的几个案例研究。每个案例研究都演示了如何在各种场景中使用一个或多个可用的预打包 Spring Boot 流应用程序来构建数据流管道。

今天,我们将展示两个最常用的应用程序,HTTP 源JDBC 接收器。我们将使用它们来构建一个简单的服务,该服务接受 HTTP POST 请求并将内容保存到数据库表中。我们首先将它们作为独立的Spring Cloud Stream应用程序运行,然后展示如何使用Spring Cloud Data Flow来协调相同的管道……

为 Spring Cloud Stream 应用程序介绍 Java 函数 - 第 1 部分

工程 | 2020 年 7 月 20 日 | ...

为 Spring Cloud Stream 应用程序介绍 Java 函数 - 第 1 部分

上周我们发布了为 Spring Cloud Stream 应用程序介绍 Java 函数 - 第 0 部分
宣布发布 Spring Cloud Stream 应用程序 2020.0.0-M2。
在这里,我们将探讨函数组合,这是第 0 部分中介绍的面向函数的架构启用的更强大的功能之一。如果您没有机会阅读第 0 部分,现在是好时机!

函数组合

函数组合在数学和计算机科学中具有坚实的理论基础。
实际上,这是一种……

为 Spring Cloud Stream 应用程序介绍 Java 函数 - 第 0 部分

发布 | 2020 年 7 月 13 日 | ...

我们高兴地宣布发布Spring Cloud Stream 应用程序 2020.0.0-M2。此版本是对旧版Spring Cloud Stream App Starters的彻底检修。从这个版本开始,我们将从主题导向的发布列车名称(按字母顺序排列的著名科学家)转向基于日历的版本控制。当前的 GA 版本称为 *Einstein*,我们很高兴推出 *2020.0.0-M2*。我们也正在摆脱应用程序启动器。在重新组织、重新打包和(在某些情况下)重写底层代码后,我们现在有了新的 Git 存储库:spring-cloud/stream…

Spring Framework 4 中的 Groovy Bean 配置

工程 | 2014 年 3 月 3 日 | ...

这篇文章旨在向 Java 开发人员介绍 Groovy Bean Builder,将其作为 Java @Configuration 和 XML 配置的强大替代方案或补充。Spring Framework 4.0 版本包含 Grails Bean Builder 的核心 Spring Framework 移植版本,提供用于配置 Spring 应用程序的 Groovy DSL。Groovy 和 Grails 开发人员无疑熟悉这种配置 Spring 应用程序的方式,我希望你们其他人已经在想“这有多酷?”

如果您不是 Groovy 专家,请不要担心。正如许多 Java 程序员使用另一个流行的 Groovy DSL Gradle 来构建应用程序一样,您只需要了解一些基本的语法即可开始使用。示例代码可在github上找到……

Spring Data GemFire 1.3.0 发布

工程 | 2013 年 3 月 14 日 | ...

我很高兴地宣布 Spring Data GemFire 1.3.0 的 GA 版本发布。除了许多小的错误修复和增强之外,此版本还包含一些值得注意的新功能,使使用 GemFire 编写 Java 应用程序更加容易。

函数的注解支持

GemFire 通过提供远程函数执行框架,提供了“将代码带到数据”的能力。为了保持 Spring 的核心价值观,Spring Data GemFire 隐藏了注册和执行远程函数所需的样板代码,允许您编写 POJO 并专注于应用程序逻辑。有关详细信息,请参阅 Spring Data GemFire 参考指南中的函数执行的注解支持章节。

简化与 GemFire 数据源的连接

GemFire 提供了许多用于调整连接池性能以及配置如何管理和同步本地数据的选项。Spring Data GemFire 命名空间支持所有这些选项,但是许多应用程序只是需要对 GemFire 数据网格进行读/写访问的客户端。对于此类应用程序,现在可以作为客户端连接到 GemFire,而无需显式配置池或客户端区域。

 <gfe-data:datasource>
        <gfe-data:locator host="${host}" port="${port}"/>
 </gfe-data:datasource>

上述配置将创建客户端缓存、池和所有服务器上可用区域的代理客户端区域,并使用合理的默认值,并将它们注册为 Spring bean。

JSON 支持

GemFire 7.0 提供了完整的查询支持的 JSON 存储功能。通常,这需要应用程序使用 JSONFormatter 将 GemFire 的内部格式转换为 JSON 字符串,反之亦然。Spring Data GemFire 现在提供了一个选项,可以自动为选定的区域执行此转换,以及使用 Jackson 的 ObjectMapper 将对象单向转换为 JSON。此功能使用 Spring AOP 来拦截 Region 和 GemFireTemplate 上的相应操作。详情请参见 Spring Data GemFire 参考指南

用于 Spring 集成的 Groovy DSL

工程 | 2012年11月6日 | ...

Spring Integration 使用 Spring 编程模型实现 企业集成模式,从而在基于 Spring 的应用程序中启用消息传递。Spring Integration 还使用支持 JMS、HTTP、AMQP、TCP、FTP(S)、SMTP 等的声明式适配器与外部系统集成。目前,消息流的配置主要通过 Spring XML 完成,Spring Integration 支持多个命名空间,以使其尽可能简洁。今年早些时候,SpringSource 发布了用于 Spring Integration 的 Scala DSL。现在,我们很高兴地宣布第一个里程碑版本……

领先一步

VMware 提供培训和认证,以加速您的进步。

了解更多

获取支持

Tanzu Spring 通过一个简单的订阅提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举行的活动

查看 Spring 社区中所有即将举行的活动。

查看全部