本周 Spring 动态 - 2013 年 10 月 15 日

工程 | Josh Long | 2013 年 10 月 15 日 | ...

欢迎收看本期《本周 Spring 动态》!另外,祝大家 Ada Lovelace 日快乐!

本周我将前往“狮城”新加坡,在 亚太 Pivotal Summit 上与商业领袖们探讨 Spring!如果您在新加坡,并想聊聊企业 Java、Spring、Cloud Foundry 和大数据,请联系我

如果您在旧金山/湾区,那么请在本月下旬,即 10 月 29 日(星期二)和 30 日,加入我在 Pivotal 总部举办的 两个关于 Spring 的讲座:一个介绍 Spring REST 开发,另一个作为 Pivotal 的一部分,全面介绍 Spring 的最新进展。

  1. Spring Integration 负责人 Gary Russell 宣布 Spring Integration 2.2.6 已发布!这是当前发布(2.2.x)分支的最新维护版本,包含了对 (S)FTP、脚本、TCP、事件和 Mongodb 支持的一些重要错误修复。快去看看吧!
  2. 想了解 Hadoop 的基础知识?前往 gopivotal.com 查看近期 Hadoop 网络研讨会系列“使用 Hadoop 和 Spring 构建大数据应用程序”的 重播
  3. 10 月 24 日(星期四),加入 Juergen Hoeller 的基于注解的 Spring 视图讲解:使用 Spring 进行现代组件设计,立即注册 欧洲北美
  4. 11 月 19 日,加入我和 John Davies,学习每秒一百万次的动态路由与 Spring Integration。立即注册 欧洲北美
  5. 11 月 21 日,加入我参加一个网络研讨会,您最近看过 Spring 了吗? 我将介绍今年 Spring 的所有动态,特别是今年 SpringOne 的发布内容。立即注册 欧洲北美
  6. 与此同时,Mkyong.com 博客上还有另一篇精彩文章,介绍使用 Spring MVC 和 Google Maps 进行地理定位
  7. JavaBeat 博客有一篇不错的文章,介绍如何使用Spring MVC 测试框架来测试 Spring MVC 应用程序。
  8. ISOS Technology 博客有一篇不错的文章,介绍单元测试 Spring MVC Portlets
  9. 我写的一系列介绍Spring 丰富 REST 堆栈的第三篇文章已在 Safari 博客上发布。代码一如既往地可以在我的 GitHub 帐户上找到。
  10. 您可以通过 Homebrew 轻松安装 Spring Boot:brew tap pivotal/tap && brew install springboot。这当然是您可以通过 Homebrew 获取的其他一些出色的 Pivotal 技术,包括 Spring REST Shell(brew install rest-shell)和 RabbitMQ(brew install rabbitmq)。
  11. 您想通过 JMS 使用 RabbitMQ 吗?Spring 忍者 Greg Turnquist 很好地演示了如何使用Spring 的 RabbitMQ JMS 连接器。查看这篇博文了解更多详情!
  12. 微软在使 Redis 在 Windows 上可用方面付出了很多努力!观看这个 MSDN Channel 9 视频,了解在 Windows 上运行 Redis
  13. libfugu.so 博客提供了对 RabbitMQ 的快速入门介绍。不错!(而且,找到一个看起来像 Linux 链接库的域名,加分!)
  14. 观看这个视频,演示如何为运行在 Cloud Foundry 上的Spring 应用程序设置 New Relic 监控支持

本周 Spring 动态 - 2013 年 10 月 8 日

工程 | Josh Long | 2013年10月08日 | ...

欢迎收看本期《本周 Spring 动态》

我上周末参加了精彩的 Silicon Valley Code Camp 活动。这是一场精彩的盛会。参观 Pivotal 展位的人们有机会体验 Spring Boot。精通 Java、iOS、Python、.NET、Objective-C 等领域的人们都使用 Spring Boot 在几分钟内设置了 RESTful 服务。说实话,结果(“哇!我不知道可以这样做!”)让我感到既好笑又非常满意!人们对 Spring Boot 越来越感兴趣。

  1. 说到 Boot,您错过 Phil Webb 的 Spring Boot 网络研讨会了吗?如果您错过了,没关系!您可以在线观看
  2. Roy Clarkson 宣布Spring Mobile 1.1.0 已发布!新版本 - 正如许多关注此 roundup 的朋友所知 - 在LiteDeviceResolver中改进了设备检测,在SitePreferenceSiteSwitcher中增加了平板电脑支持,提供了一个基于 Java 的配置 API,以及LiteDeviceDelegatingViewResolver。很棒!
  3. Martin Lippert 刚刚宣布了最新的 Spring Tool Suite 和 Groovy/Grails Tool Suite (3.4.0) 版本,其中包含 - 在许多其他功能中 - 对遵循 Spring 的主页 Spring.io 上的入门指南的支持。这些版本还更新了对 Grails 2.2.4 和 tc Server 2.9.3 的支持。
  4. 有关更多信息,请查看新特性和注意事项。这两个工具套件都基于最新的 Eclipse Kepler SR1 版本。下一个版本(3.5.0)计划在 2014 年 3 月发布,紧随 Eclipse Kepler SR2 (4.3.2) 版本之后。
  5. 您错过了精彩的 Platform CF 大会吗?别担心,会议视频正在陆续在线发布。Pivotal 的首席软件工程师 Ashwin Kumar 精彩地介绍了将 Pivotal HD 作为 Cloud Foundry 服务。Pivotal HD 是世界上最快的 Hadoop 发行版,利用了成熟的 SQL 查询引擎 HAWQ。
  6. 虽然不完全是 Spring 相关内容,但 GoPivotal 博客有一篇关于使用 HAWQ 和 Madlib 分析零售数据的不错文章,Madlib 是最初属于 Greenplum 的分析(以及机器学习!)引擎,现在可供 HAWK 用户使用。好文章!整个堆栈当然可以通过 Spring XD 进行很好地集成,但即使没有,这也是一个非常酷的用例!
  7. 您错过了 SpringOne2GX 2013 吗?查看第一晚的开幕主题演讲,其中有 Pivotal 首席执行官 Paul Maritz、Adrian Colyer、David Syer、Juergen Hoeller、Chris Beams 和 Edward Hieatt
  8. 观看 Param Rengaiah 的网络研讨会重播,利用模块化模式和 Spring 驯服耦合和内聚的野兽
  9. 您是否正在寻找 Spring 的可下载 .zip 分发版?我们很快将在我们的新网站上让它们更容易找到,但在此期间,只需访问 Artifactory 存储库并搜索 spring-framework 即可找到。再深入一点就能找到。 这是一个更直接的链接

本周 Spring - 2013 年 10 月 1 日

工程 | Josh Long | 2013年10月02日 | ...

欢迎回到“本周 Spring”的又一期!当然,有很多事情要说,让我们开始吧。

如果您在湾区,我想邀请您参加本周末的 硅谷编程营。我将发表两个演讲——一个关于使用 Spring 构建 RESTful 服务,另一个是关于使用令人惊叹的 Phill Webb 改进 Spring Java 配置肌肉记忆。Pivotal 也将在那里设有展位,我们很想见到您!

  1. Spring Data Arora SR3 已发布! 新版本集成了 Spring Data Commons 1.5.3、Spring Data JPA 1.3.5、Spring Data MongoDB 1.2.4 和 Spring Data Neo4j 2.2.3。一如既往,Oliver 做得很棒!

通过 Pull Request 为 Spring Boot 贡献内容

工程 | Greg L. Turnquist | 2013 年 9 月 20 日 | ...

如果您错过了今年的 SpringOne 2GX 大会,那么一个热门的专题是发布 Spring Boot。Dave Syer 展示了如何通过能够容纳在 一条推文 中的代码来快速创建一个 Spring MVC 应用。在这篇博文里,我将揭开 Spring Boot 的神秘面纱,并通过提交一个 Pull Request 来向您展示它是如何工作的。

自动配置

Spring Boot 拥有强大的自动配置功能。当它在类路径上检测到某些内容时,它会自动创建 bean。但是它尚未拥有的一个功能是支持 Spring JMS。我需要这个功能!

第一个…

Spring Android、Spring Social 和 Spring Security 的 Maven 依赖舞

工程 | Josh Long | 2013 年 9 月 17 日 | ...

Roy Clarkson (@royclarkson) 和我在 SpringOne2GX 2013 上做了一个演讲,我们在演讲中讨论了构建 REST 服务,并考虑了在 Android 和 iOS 等移动平台上消耗这些服务。这次演讲展示了一个应用程序使用 Spring MVC、Spring HATEOAS、Spring Data REST、Spring Security、Spring Security OAuth 和 Spring Android 的渐进式演进。代码得到了 Rob Winch 的大力帮助,

代码布局

演讲的代码在我的 GitHub 帐户 (github.com/joshlong/the-spring-rest-stack) 上。重要的是,代码位于 code 目录中。在此之下有两个选择:web(您将在其中找到 resthateoashateoas-dataoauthsocial 模块)和 client(您可以在其中加载 Android 模块和 iOS 模块)。web 文件夹中的模块按顺序演示了一个简单的 REST 服务的演进,该服务集成了超媒体、Spring Data 存储库和 OAuth 安全。social

本周 Spring 动态 - 2013 年 9 月 17 日

工程 | Josh Long | 2013 年 9 月 17 日 | ...

本周 Spring

欢迎回到本期《本周 Spring 动态》!我仍然沉浸在上周的活动中。如果您在场,您就明白我的意思了;如果您不在,那么请期待未来几个月发布的视频。有太多精彩内容值得一看。

对于那些在展会上找到我并因为《本周 Spring 动态》而与我交流的朋友们,能见到你们真是太棒了

当然,世界在继续运转,让我们来看看上周发生的一些事情。

  1. Jennifer Hickey 宣布Spring Data Redis 1.1 已发布。新版本支持管道、数据类型转换,以及一个修改过的 API,用于一次性添加或删除多个 ListSetHash 元素。很棒的东西,快去看看!
  2. AspectJ、Scala、Cloud Foundry 和 Spring 框架的专家 Ramnivas Laddad 刚刚宣布了 Spring Cloud 项目的第一个版本,这是一个革命性的 API,它将以前用于 Cloud Foundry 应用程序的 cloudfoundry-runtime 库提升到了新的水平,为支持多个提供商敞开了大门。Ramnivas 干得漂亮!而且,亲爱的社区,如果您想看到更多,现在是时候查看代码并发表您的意见了!
  3. @GoPivotal 博客上,Stacey Schneider 整理了一篇关于她上周参加 SpringOne2GX 经历的精彩文章。非常值得一读,我赞同她的看法,尽管这不是我的第一次 SpringOne2gx!:)
  4. 上周对 Data 的喜爱还不够吗?Spring Data 专家 Oliver Gierke 刚刚宣布了两个社区模块的最新版本:由 Michael Nitschinger 领导的 Spring Data Couchbase 的第一个里程碑版本,以及由 Christoph Strobl 领导的 Spring Data Solr 的 1.0 GA 版本。
  5. 我写了一篇博客,介绍了一些使 Roy Clarkson 和我在上周 SpringOne2GX 上演示的 Spring Social 绑定与 Spring Android 一起工作所需的内容,特别是关于加载 Spring 核心、Spring Security 和 Spring HATEOAS 的某些类。快来看看!
  6. Groovy/Grails 和 Spring 工具套件的专家 Martin Lippert 刚刚宣布了 STS 和 GGTS 的最新迭代版本 3.4.0.M1 已发布
  7. 我们的朋友 Tobias Flohre 又出新作了,这次有两篇关于 SpringOne2GX 的精彩总结文章。第一篇回顾了演示的一些 Spring XD、Batch 和 Hadoop 技术,第二篇回顾了Spring Boot 和 Spring IO 平台
  8. Spring 4 中 WebSocket 支持的天才 Rossen Stoyanchev,已经准备了一系列使用 WebSocket 和 STOMP(您可以通过 RabbitMQ 使用它们!)的精彩演示,他上周在 SpringOne2GX 2013 上展示了这些演示,并获得了广泛好评。干得漂亮!如果您上周错过了,至少现在可以看看代码。
  9. Ippon.fr 博客上有一篇不错的(法语!)采访,采访了我的朋友 Eric Bottard,他是 Spring XD 的(讲法语的)开发人员。好文章!
  10. IntelliGrape 的各位才俊整理了他们对 SpringOne2GX 第二天最喜欢的演讲的总结。快来看看!

本周 Spring 动态 - 2013 年 9 月 10 日 - SpringOne2GX 2013 版

工程 | Josh Long | 2013 年 9 月 10 日 | ...

欢迎来到《本周 Spring 动态》SpringOne2GX 2013 版!

我们现在正在加州圣克拉拉的 SpringOne2GX 2013 大会第二天!昨天的开幕主题演讲带来了大量令人兴奋的新公告和介绍,我将在其中讨论一些内容,并在本周剩余时间进行后续报道。

在这里,当然,是您对 Spring 社区中所有闪光点(以及(万岁!!)SpringOne2GX 2013!)的简要回顾!毫不夸张地说,这是迄今为止最激动人心的 SpringOne2GX。

Some of the amazing Spring project leads at SpringOne2GX 2012

我最喜欢 SpringOne2GX 的一点是它让与会者能够接触到那些创造了出色技术的大脑。今晚的开幕主题演讲晚宴后,一些项目负责人留下来了几分钟,为我拍了这张即兴合影。Spring 核心负责人 Juergen Hoeller 位于正前方,身穿蓝色衬衫。顺便说一句,Juergen 实际上不发推特(该账户是一个占位符!),这使得有机会与他在 SpringOne 交谈更加精彩!从 Juergen 之后开始,逆时针方向,您会看到Spring Security 负责人 Rob WinchSpring MobileSpring Android

本周 Spring 动态 - 2013 年 9 月 3 日

工程 | Josh Long | 2013 年 9 月 3 日 | ...

欢迎收看《本周 Spring 动态》!SpringOne 即将到来!本周末将拉开帷幕,届时将举行 Cloud Foundry Platform 活动,并将持续到下周四。我个人对今年的展会感到非常兴奋(也有点紧张!)。它将非常盛大。昨天在美国可能是假期(希望您们都度过了愉快的假期!),但我们 Spring 团队的大部分成员都在为 SpringOne2GX 加紧准备!

我的 SpringOne2GX 2013 之旅 SpringOne2GX 2013 的议程看起来非常棒!我对很多不同的事情都很感兴趣,比如开放网络(REST 驱动的架构)、大数据、云计算和安全,并且在 SpringOne 上,我完全可以满足我对每个主题的渴求!以下是我在参加会议时看的一些演讲。

  • Mark Fisher 和 Mark Pollack 主讲的 《应对大数据复杂性》。这个还需要介绍吗?Spring XD 的负责人 Mark Pollack(Spring 核心贡献者、Spring AMQP 联合创始人、Spring.NET 创始人、Spring Data 和 Spring Data for Hadoop 负责人)和 Mark Fisher(Spring 核心贡献者、Spring Integration 创始人、Spring AMQP 联合创始人)将介绍 Spring XD,这是当今构建以大数据为中心应用程序的最强大方式。
  • Matt Stine 主讲的 《构建您自己的私有 Cloud Foundry》。Matt 将介绍如何使用 BOSH 设置您自己的本地 Cloud Foundry 实例。Matt 是一位出色的演讲者,一位杰出的技术专家,我迫不及待想看这场演讲。
  • John Davies 主讲的 《分布式规则引擎和 CEP》。John 是 C24 的 CEO,拥有一些令人难以置信的企业集成实战经验。他也是一位史诗般的演讲者。
  • Jan Machacek 和 RabbitMQ 开发者倡导者 Alvaro Videla 主讲的 《RabbitMQ 是新的王者》。Jan 是一位长期的 Spring 专家和分布式系统专家,Alvaro 是 Pivotal 的 RabbitMQ 开发者倡导者(就像我一样,是 Pivotal Spring 的开发者倡导者……)。他们都很出色,我预计这将是一个精彩的演讲。
  • Costin Leau 主讲的 《您的数据,您的搜索,Elasticsearch》。Costin 曾从事过许多工作,包括 Spring 缓存与 Spring 核心的集成、Spring Data GemFire、Spring Data 本身、Spring DM 服务器中的 OSGi 支持(多年前)以及更多。他现在正在使用 Elasticsearch,我迫不及待想听听他的看法。Costin 非常擅长将复杂的主题提炼成其精髓。

我今年有四场演讲(与出色的联合演讲者一起!)。Andy Piper 和我将主讲《构建 Spring 和 Cloud Foundry 驱动的应用程序》Roy Clarkson 和我将主讲《使用 Spring 和 REST 连接应用程序》Kevin Nilson 和我将主讲《使用 Spring 和 profiles 构建适应性强的应用程序》Phil Webb 和我将主讲《如何提升您的 Java 配置肌肉记忆》

我期待在 SpringOne2GX 见到大家!在 Twitter 上联系我 (@starbuxman),如果您在那里,让我们聊聊Spring

现在,进入本周的 roundup! 希望这能满足您在 SpringOne2GX 之前的胃口!:)

  1. Spring Scala 负责人 Arjen Poutsma 刚刚发布了Spring Scala 1.0.0.RC1。新版本是发布周期中的第一个候选版本,目标是发布 1.0 版本,所以一定要去看看!
  2. 加入我们来自 Pivotal Labs 的朋友,David Frank 将于 9 月 5 日向您展示“如何通过 Pivotal Tracker 变得敏捷”。
  3. 加入 Phil Webb,他将深入探讨 Spring 中最新的热门项目之一 - Spring Boot,将于 9 月 26 日发布
  4. Jan Stenberg 写了一篇不错的文章,介绍 Russ Miles 的Life Preserver 模式在 Spring 中的应用。文章在代码方面有点少,但您可以查看原始演示以获取详细信息
  5. JavaBeat 博客有一篇非常详细的文章,介绍如何使用 Spring 的@Tranactional注解
  6. Eugen Dvorkin 写了一篇不错的文章,介绍如何将 Storm、Groovy、CEP 引擎和 Spring 一起使用。这非常酷,尽管代码不多。我还想知道这是否可以用更简单的方式完成,例如使用 Spring XD。
  7. Spring Web 专家 Arjen Poutsma,也是原始 RestTemplate 的作者,一直在努力开发一个异步 RestTemplate,该版本将包含在 Spring 4 中。看起来非常棒
  8. Luis Miguel Gracia Luis 写了一篇不错的文章,介绍了自 Spring 团队成为 Pivotal 的一部分以来,为 Spring 开发者带来的一些很棒的新东西,包括 Spring XD、Spring Boot、Spring Loaded 和 Spring REST Shell。这篇文章是西班牙语的,但 Google 翻译效果相当不错。
  9. Rajkumar Singh 写了一篇不错的文章 - Apache Hadoop 和 Spring Data:配置 mapreduce 作业 - 该文章介绍了Spring for Apache Hadoop。好文章!
  10. Bluesoft 博客发布了该系列文章的第二篇,主题是使用 Angular.js 和 Spring MVC 构建登录对话框。这越来越有意思了……
  11. Technicalpractical 博客有一篇文章,使用 Spring 将模型显示为 JSON 或 XML。这篇文章很好地介绍了如何使用 Spring MVC 2.5 时代的 API 来构建 JSON 视图,但我希望您能查看更多关于使用 Spring 构建以 JSON 为中心的 REST 服务的最新介绍这里有一个(简单得多)的示例

本周 Spring 动态 - 2013 年 8 月 27 日

工程 | Josh Long | 2013年8月27日 | ...

欢迎回到本周 Spring 动态的又一期。照例,我们有很多内容要分享!Spring Security 和其负责人 Rob Winch 在本周的汇总中占据了重要位置!向 Rob Winch 致敬

  1. Spring Security 负责人 Rob Winch 发布了一篇博文,介绍 Spring Security 中一些新的、智能且便捷的跨站请求伪造(或称 CSRF)防护功能。
  2. Rob 还发布了另一篇精彩的博文,演示了 Spring Security 对安全标头的全新支持
  3. Rob 好心地将这些新功能集成到了 Spring REST 栈代码库中,您可以在其中看到它们在一个完整的、集成的 Spring REST 服务中的实际应用。要查看这些改动,以及集成了 Spring Security 和 Spring Security OAuth 的内容,所有这些都使用 Java 配置,请查看oauth 模块
  4. Reactor 负责人 Jonathan Brisbin 宣布Reactor 1.0.0.M2 现已发布。新版本看起来非常令人兴奋!从 Jon 的介绍中:“此第二个里程碑版本包含若干错误修复和一些非常令人兴奋的新功能。Reactor 现在包含一个 Processor 抽象,这是一个高度优化的任务处理器,基于LMAX Disruptor RingBuffer……在 MacBook Pro 上的初步基准测试显示,Processor 每秒可以处理大约 1 亿个事件。是的,您没看错:每秒 1 亿个!”
  5. Hyperic、Cloud Foundry、Spring 和 Spring Data 的专家 Jennifer Hickey 宣布Spring Data Redis 项目最新版本发布。新版本包括对密钥过期命令的毫秒精度支持、消息监听器在连接失败时的重新订阅、`RedisMap` 和 `RedisProperties` 中 `ConcurrentMap` 合约的完整实现。
  6. Spring Batch 负责人Michael Minella 宣布Spring Batch 3.0M1 已发布!此版本标志着实现JSR-352 Java Batch 规范等工作的第一步。
  7. 立即注册 8 月 29 日的网络研讨会:与 Param Rengaiah 一起参加“通过模块化模式和 Spring 驯服耦合与内聚的野兽”。
  8. 加入我们来自 Pivotal Labs 的朋友,David Frank 将于 9 月 5 日向您展示“如何通过 Pivotal Tracker 变得敏捷”。
  9. Spring Security 负责人 Rob Winch 在推特上说:“#Gradle 使其构建 #SpringSecurity 与 #SpringFramework 3 变得极其简单,并使用 #Spring 3/4 运行测试”,并链接到这个精彩的示例。严格来说,这不是 Spring 相关帖子,但对于像我们在 SpringSource 一样也使用 Gradle 的人来说,这是一个非常优雅的 Gradle 构建的绝佳示例。
  10. Spring Security 负责人 Rob Winch(这家伙真是无处不在!)也宣布了Spring Security LDAP 最新版本发布
  11. 我们的朋友 Xavier Padró 又回来了,这次带来了一篇博文,介绍了如何在收到消息时使用 Spring 的 JmsTemplate 进行资源本地 JMS 事务处理
  12. Patrick Grimard 发布了一篇精彩的博文,介绍了如何将Yeoman Backbone 与 Spring Web 应用程序集成,以及如何通过使用 Tuckey 的 UrlRewriteFilter 来绕过他遇到的一些资源解析问题。我喜欢 UrlRewriteFilter。即便如此,我认为(但尚未测试过……)Patrick 可以使用 Spring MVC 资源处理支持来完成同样的事情,就像他在代码中通过覆盖 public void addResourceHandlers(ResourceHandlerRegistry registry) 配置方法的一个示例中所做的那样。也许我错了,无论如何,这篇博文很棒!
  13. SpringSource 已在 Q3 计划中发布了新的培训课程,请查看以下培训课程计划:核心 Spring使用 Spring 进行企业集成Spring Web

Reactor 1.0.0.M2 – JVM 上响应式快速数据应用程序的基础

工程 | Jon Brisbin | 2013年8月27日 | ...

我很高兴地宣布 Reactor 的第二个里程碑版本,它正在朝着 1.0 版本迈进!Reactor 1.0.0.M2 的 Maven 工件可在常规的里程碑存储库中获取。

什么是 Reactor?

Reactor 是一个基础框架,用于在 JVM 上构建高吞吐量、异步、响应式应用程序。它提供 Selector 风格的事件路由主题匹配、动态 Consumer 分配、一个超快的任务处理器以及响应式 Stream 和 Promise API,用于异步处理数据和协调异步任务。它提供全面的 Groovy 语言支持,通过提供语言扩展,使得用 Groovy 编写 Reactor 应用程序非常 Groovy!它还具有易于使用的 Spring 支持,可以自动将带注解的 POJO 连接到 Reactors。

此版本包含哪些内容?

这个第二个里程碑版本包括了一些错误修复和一些真正令人兴奋的新功能。Reactor 现在包含了一个 Processor 抽象,这是一个基于 LMAX Disruptor RingBuffer 的高度优化任务处理器。它使用 Reactor 的通用抽象来配置 RingBuffer,并允许您使用 Reactor 的通用 API,而不是 Disruptor 特定的 API。它还通过设计跳过了 Reactor 提供的 Selector 匹配和动态 Consumer 分配,以榨取其所能达到的每一个吞吐量。在 MacBook Pro 上的传闻基准测试显示,Processor 每秒可以通过管道处理大约 1 亿个事件。是的,您没有看错:每秒 1 亿个!

1.0.0.M2 还在 Reactor API 中包含了一个虽小但重要的新功能,它优化了 Reactor 中的事件发布,以获得大约 30-50% 的更高吞吐量。它不适用于所有情况,因为它从 Reactor 中准备了一个优化的 Consumer 列表,但对于每秒额外的 1000 万个事件的吞吐量来说,这是一个很棒的新功能。

优化发布

Reactor 的强大之处之一是 Selector 匹配主题(ish)的发布/订阅。它允许您使用主题、匿名对象、可分配类型层次结构、URI 路径匹配或正则表达式(如果您实现自己的领域特定 Selector,则可以使用任何其他类型的 Selector 匹配)轻松地将处理程序分配给事件。但是许多应用程序可以在启动时分配其处理程序,这意味着到这些 Consumer 的路径可以针对高效的事件发布进行优化。新的 Reactor 方法 prepare(Object) 允许您预先选择一个键的 Consumer。它返回一个 Consumer 本身,事件发布者可以使用它来有效地通知新事件。

// Create Environment in which Reactors operate
Environment env = new Environment();
Reactor reactor = Reactors.reactor().env(env).get();

reactor.on($("say.hello"), new Consumer<Event<String>>() {
	public void accept(Event<String> ev) {
		System.out.println("Hello " + ev.getData() + "!");
	}
});

Consumer<Event<String>> sayHello = reactor.prepare("say.hello");
for(String name : listOfNames) {
	sayHello.accept(name);
}

RingBuffer 任务处理器

Reactor 1.0.0.M2 包含了 Processor 抽象。它是一个由 LMAX Disruptor RingBuffer 支持的简单任务处理器,旨在将其无缝集成到 Reactor 中使用的响应式 API 中,因此它使用 Supplier 和 Consumer 等通用抽象。一个完全配置的 Processor 可以在单个表达式中创建,使用 Java 8 lambda 更简洁。

Processor<Message> proc = new ProcessorSpec<Message>()
	.dataSupplier({ return new Message(); })
	.consume({ msg -> // handle the updated Message object…

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅