本周 Spring - 2014 年 4 月 22 日

工程 | Josh Long | 2014 年 4 月 22 日 | ...

欢迎收听本期《本周 Spring》!本周我将在印度班加罗尔参加印度开发者峰会,与开发者们(您猜怎么着……)聊 Spring!我还拜访了班加罗尔电子城的一家大型系统集成商,并向他们使用 Spring 处理全球项目的众多架构师和工程师团队发表了演讲。印度是一个很有趣的地方,因为他们的很多业务都来自于那些希望在项目压力巨大的情况下获得额外帮助的外国公司。自然,任何能帮助他们更快地完成更多工作的东西都会引起他们的兴趣,而 Spring 正是他们钟爱的选择。不用说,Spring Boot 深受欢迎!不过,也不是所有的工作,当当地美食如此美味时!:)

本周有大量的网络研讨会和回放——我们需要介绍的内容很多,让我们开始吧!

  • 对 Hadoop 垂涎欲滴?准备好盛宴吧——Mark Pollack 博士和 XD 团队宣布 Spring XD 1.0.0 M6 现已发布。这个新版本包含了大量新功能,包括对 YARN 的支持、用于 DIRT 分布式运行时的 ZooKeeper 支持、机器学习算法、改进的 shell 选项卡自动完成功能、一个支持在廉价硬件上实现 100 万+ 事务/秒的 Reactor 驱动的 TCP/UDP 源、默认的 FTP 到 HDFS 作业,以及更多!(不,真的,我们是认真的)。这个版本感觉他们像是跳过了所有的 1.0.x 里程碑,直接发布了一个“2.0”版本!
  • Reactor 项目负责人 Jon Brisbin 宣布,与 Typesafe、Netflix、Twitter 等公司的其他工程师一起,发布了用于响应式流处理的新通用 API。这太棒了
  • Spring Data 负责人 Oliver Gierke 刚刚宣布 Spring Data Codd 的第二个服务版本现已发布。这个新版本非常重要,请务必全部查看!
  • Dave Syer 博士刚刚宣布了 Spring Security OAuth 2.0.0.RC1 的发布。这个项目发展得非常快,我喜欢更新我的演讲代码,The Spring REST Stack,使用越来越简洁强大的迭代。我已经更新了该分支(仍在更新单元测试)以使用 Spring Security 2.0.0.RC1。这是一个可用的 OAuth 保护的 REST 服务,支持 HTTP 和 HTTPS,可以独立运行,也可以作为传统的 .war 运行,并使用自定义的 UserDetailsService bean 和 Java 8 lambda。很不错!
  • Spring Integration 正在准备一个令人难以置信的新版本——全面支持注解和 Java 配置,以及一些 Spring Boot 支持!在 4.0 版本中,你将能够构建不依赖 XML 的集成应用程序。项目负责人 Gary Russell 将在 5 月 13 日的名为 Spring Integration 4.0,新前沿 的网络研讨会上带你了解所有这些令人兴奋的新特性。
  • 4 月 30 日,与 New Relic 的 Ashley Puls 一起加入我,我们将追踪和诊断一个 Javascript(前端)和 Java/Spring(后端)应用程序。
  • Chris Beams 撰写了另一篇关于 Sagan 项目的出色文章,这一次是关于迁移到 Java 8 的。快来看看!
  • 我最近的演讲《使用 Spring Boot 构建“Bootiful”应用程序》的回放现在可以在我们的 YouTube 频道上观看
  • Spring Security 负责人 Rob Winch 又带来了一篇关于高级 Spring MVC 测试与常用第三方项目集成的文章。这篇文章是关于使用 Geb 测试 Web 应用程序
  • Spring Data Neo4j 的负责人 Michael Hunger 和我将在 5 月 20 日举办一个关于 Spring Data Neo4j 3.0 和 Neo4j 2.0 的精彩网络研讨会,地址在这里
  • 搜索是你的目标吗?你有机会免费获得前排座位,观看前同事、Spring Committer Costin Leau(现任职于 Elasticsearch)的 90 分钟演讲:《你的数据,你的搜索,Elasticsearch》。
  • 不要错过 Pivotal 的 Mike Wiesner 在本次SpringOne2GX 2013 回放:应用程序安全陷阱中讨论的实用的应用程序安全(不仅仅是 Spring Security)话题。
  • Groovy 语言负责人 Guillaume LaForge 的史诗级《Groovy Weekly》专栏进展顺利!这里总有好东西,本周也不例外。如果你喜欢 Groovy(和 Grails)的一切,不妨看看。
  • 这个项目由 Alexandre Rafalovitch 发起,旨在改进 SOLR 的 JavaDocs。这里有很多值得称赞的地方,但我特别喜欢这个 Spring Boot 示例,它演示了一个连接到 SOLR 实例的 REST 端点。很棒!
  • Fabio Maffioletti 写了一篇非常好的文章,探讨了如何使用JTA 配合 Spring(特别是 Spring Boot 和 Spring Data JPA)通过 Atomikos 来协调两个不同数据库之间的事务。这篇文章的起点是我在 2011 年写的关于同一主题的旧文章,它引入了 Spring Boot 和 Spring Data,并将示例从一个数据库和一个 JMS 代理改为一个数据库和另一个通过 JPA 的数据库。这真的很酷!
  • Yuan Ji 撰写了非常不错的关于使用 Spring HATEOAS 构建符合 HAL 标准的 REST 服务的文章以及如何对其进行单元测试,以及——最近——如何使用Angular-HAL 来消费这些服务。
  • 我们的朋友 Brian Hannaway 又回来了,这次他写了一篇关于构建 Spring Batch 应用程序的文章。内容非常棒,值得任何想爱上并学习 Spring Batch 的人阅读。在文章中,Brian 演示了如何使用 XML 命名空间构建一个 Batch 应用程序。Spring Batch 也支持非常好的 Java 配置 API,并且——借助 Spring Boot——编写 Spring Batch 应用程序可以非常简洁。我以 Brian 非常酷的示例为基础,写了一个使用 Spring Boot 和 Java 配置 API 的不同版本供参考。不过,一定要先从 Brian 的博客开始,否则我存储库中的代码将毫无意义!

Sagan 项目:升级到 JDK 8

工程 | Chris Beams | 2014 年 4 月 18 日 | ...

我相信大多数读者都知道,Java SE 8 已于上月发布。与最近发布的 STS 3.5.0 及其对 JDK 8 的完整支持相结合,我们认为现在是升级 Sagan 以利用新语言特性和 API 的理想时机。

注意:还不熟悉 Sagan 项目?它是 Spring 的参考应用程序,为本博客和 spring.io 上的所有其他内容提供支持。请查看此系列中的第一第二第三篇帖子以获取更多详细信息。

Cloud Foundry 的 Java buildpack 自发布之日起就提供了对 JDK 8 的支持。为了开始使用它,我们创建了自己的 buildpack 分支,将 JDK 版本从 1.7.0 提升到 1.8.0,并配置了我们的 Gradle 构建……

本周 Spring - 2014 年 4 月 15 日

工程 | Josh Long | 2014 年 4 月 15 日 | ...

欢迎收听本期《本周 Spring》!本周,我在法国巴黎的 Devoxx FR 上与开发者们讨论 Spring Framework 4.0、Spring Boot 等内容。下周将前往印度班加罗尔参加印度开发者峰会。一如既往,如果你在任何一个地点,并且想聊 Spring,请在线联系我

  1. 4 月 30 日(星期二)网络研讨会——不要错过 Ashley Puls(New Relic)和我一起追踪和诊断现代 Web 应用程序:《使用 Java 和 Javascript 进行 Web 应用程序诊断
  2. 4 月 22 日(星期二)网络研讨会——看看 EclipseCon 2014 主题演讲上的亮点:Martin Lippert 和 Mike Milinkovich 演示 Project Flux 的 Alpha 版本:《通过 Project Flux 将 Eclipse 连接到云时代开发工具》。立即注册
  3. Thomas Risberg 和 Janne Valkealahti 在本次 SpringOne2GX 2013 回放《开始使用 Spring Data 和 Apache Hadoop》中展示了如何为 Java MapReduce、Streaming、Hive、Pig、Cascading 或 HBase 使用单一的编程模型/配置模型。
  4. 在 SpringOne2GX 2013 上,Jags Ramnarayan 和 Anthony Baker 的 90 分钟演讲:《Hadoop 之上的内存数据和计算》。
  5. 查看 Kevin Nilson(Google)和我一起在 SpringOne2GX 2013 上进行的关于 Spring Profiles 的联合演讲,以及它如何成为管理正常开发/暂存/生产生命周期代码的绝佳工具:《多环境 Spring 应用程序》。
  6. 我与 Roy Clarkson 在 SpringOne2GX 2013 上再次合作,讨论 Spring Mobile/Android、REST/OAUTH 等内容,演讲题目为:《使用 Spring 构建智能客户端》。
  7. Erdem Günay 撰写了一篇非常好的文章,关于他如何使用 Spring 表达式语言 (SpEL) 和 Spring Boot 来动态地向大量 Android 客户端发送远程安装指令。
  8. 我们的朋友 Sam Brannen 将在亚特兰大 Spring 用户组发表演讲!一位聪明的
  9. Moritz Schulze 写了一篇非常、非常详细的文章,关于他的公司如何使用 Java 8 和 Spring Boot 开发了一个名为 Trackr 的时间跟踪、休假管理应用程序
  10. Mario Arias 使用Kotlin 语言创建了 Spring 关系数据入门指南的一个版本。Kotlin 是 JetBrains 的静态类型编程语言,可以编译成 JVM 字节码和 JavaScript。非常酷!我以前从未见过 kotlinprimavera 模块,但我很喜欢它!
  11. Patrick Chanezon,微软的企业布道总监,旁听了我最近关于 Spring Boot 的vJUG 会议演讲,并开始动手实践!最终成果是如何将 Spring Boot 应用程序部署到微软的 Azure PaaS。很棒!谢谢你,Patrick!
  12. Hai Nguyen 写了一篇非常好的文章,关于如何在嵌入式 Jetty 容器中配置/使用 JNDI 绑定的 DataSource
  13. 你错过了 Spring Framework 负责人 Juergen Hoeller 在 GOTO Amsterdam 的史诗级演讲,关于 Spring 4 和 Java 8 吗?别担心,你可以在线观看
  14. 这是一期特别 PaaSy 的《本周 Spring》!Kim Saabye Pedersen 写了一篇关于在RedHat 的 OpenShift PaaS 上使用 Spring Boot 的好文章。
  15. 我们的朋友 Petri Kainulainen 又回来了,这次带来了一篇关于将 JOOQ 与 Spring 结合使用的非常好的文章。Petri 是社区中非常出色的人物。我希望不用我多说你也知道这一点。收藏他的网站。它几乎总是值得的。
  16. 我们的朋友 Netflix 的 Tomás Lin 又来了!这次他写了一篇关于使用 Gradle 为 Spring Boot 打包 Web 内容 jar 的文章
  17. Michael Simons 发布了一篇非常详细的文章,关于他如何开发一个 Boot Web 应用程序。感谢 Michael 的详细介绍,非常有价值的反馈。

Spring MVC 测试与 Geb

工程 | Rob Winch | 2014 年 4 月 15 日 | ...

在我的第三篇文章中,我讨论了如何使用WebDriver 结合 Page Object Pattern 来简化我们的测试设计。在这篇文章中,我将讨论如何使用 Geb 来让我们的 MockMvc 测试更具 Groovy 风格。

为什么使用 Geb 和 MockMvc

Geb 基于 WebDriver,因此它提供了许多与 WebDriver 相同的优势。然而,Geb 通过处理一些样板代码,使事情变得更加简单。当然,我们希望使用 MockMvc,这样就不需要将我们的代码部署到服务器上。理解使用 Geb 的好处最简单的方法就是看一个例子。


注意:Geb 的另一个很棒的功能是其出色的文档……

缓存抽象:JCache (JSR-107) 注解支持

工程 | Stéphane Nicoll | 2014年4月14日 | ...

Spring 的缓存抽象 从 Spring 3.1 开始就已可用,是时候给予它更多的关注了。在这篇文章中,我想带您了解该领域的主要改进,即 JCache (JSR-107) 注解支持。

您可能听说过,JSR-107 最终确定了,距离最初的提案已经过去了 13 年。对于熟悉 Spring 缓存注解的人来说,下表描述了 Spring 注解与 JSR-107 对应注解之间的映射关系。

Spring JSR-107
@Cacheable @CacheResult
@CachePut @CachePut
@CacheEvict @CacheRemove
@CacheEvict(allEntries=true) @CacheRemoveAll

JavaScript 模块化(拒绝浮华辞藻)

工程 | Brian Clozel | 2014年4月11日 | ...

大约十年前,Adrian Colyer写了一篇令人难忘的博客文章,对面向切面编程(AOP)进行了最佳解释:清晰简洁的风格,准确的内容,没有浮华的辞藻。如果你看过本系列早期的两篇文章,你可能已经注意到我们在Sagan应用程序的客户端模块中的一些架构选择,包括使用JavaScript模块

在这篇文章中,我想以Adrian文章的风格带你了解JavaScript模块的基础知识:清晰、简单、准确、没有浮华的辞藻!

为什么JavaScript也需要模块化

如果你,像我一样……

本周 Spring - 2014 年 4 月 8 日

工程 | Josh Long | 2014年4月8日 | ...

欢迎来到另一期《本周 Spring 动态》!

明天,我将在vJUG(一个虚拟 JUG)上发表演讲,主题是Spring Boot。不要告诉别人,但这次演讲将基于 Spring Boot 联合创始人 Phil Webb 和我一直在策划的一次演讲。代码已经在线,快去看看吧,我期待明天见到你!如果你错过了这次演讲,并且碰巧在湾区,那么周四晚上在我们旧金山的 Pivotal 办公室加入我们,参加一个更提神的版本,我和 Phil 都会参加!

然后,本周日,我将去传播 Spring 的爱!我将首先抵达巴黎,参加 Devoxx FR。之后,我将前往印度班加罗尔,参加 印度开发者峰会。我自 2012 年以来就没去过那里了,非常期待再次前往,并见到那里令人惊叹的 Spring 社区。然后,在回家途中,我将在比利时停留,参加比利时 JUG 的演讲……

Sagan 项目:零停机部署

工程 | Chris Beams | 2014 年 4 月 4 日 | ...

上周,我开始了本系列,宣布 Sagan 参考应用程序现已开源,并展示了如何在您自己的机器上启动并运行它。

在这篇文章中,我想详细介绍我们如何使用*蓝绿部署*每天多次将 Sagan 零停机推送到 spring.io 生产环境。您可能以前听说过这种技术;Martin Fowler 几年前对此进行过撰写,并且在强烈推荐的书籍《持续交付》中也有关于它的章节。简而言之,它就是这样:

  1. 维护两个生产环境副本(“蓝色”和“绿色”);
  2. 通过将生产 URL 映射到蓝色环境,将所有流量路由到蓝色环境;
  3. 在绿色环境中部署和测试应用程序的任何更改;
  4. 通过将 URL 映射到绿色环境并取消与蓝色环境的映射来“切换”。

评论又回来了!

工程 | Chris Beams | 2014 年 4 月 1 日 | ...

当我们推出新的 spring.io 时,我们没有在博客上启用评论。一方面是因为我们时间有限,不启用评论是最简单的做法。另一方面,这也是一次极简主义的尝试。我们认为我们可以尝试减少反馈渠道的数量,从而全面提高质量。我们要求大家将关于我们博客文章的问题和反馈发送到 @springcentral Twitter 账号,很多人都这样做了——谢谢!

那么进展如何?我们从社区那里听到了一些反馈,他们怀念博客上的评论……

本周 Spring (Spring Boot 版!) - 2014 年 4 月 1 日

工程 | Josh Long | 2014 年 4 月 1 日 | ...

欢迎大家收看具有里程碑意义的 本周 Spring - Boot 版

今天,当然是愚人节。有很多很棒的东西作为愚人节笑话出现!今年我们没有准备任何恶作剧,但我总是喜欢向大家推荐这个依然史诗般的视频 Spring 联合创始人 Rod Johnson 宣布将 SpringSource(Spring 的发源公司)出售给微软! (在 2008 年,在 愚人节)

话不多说,今天还有比这更有趣的内容(与愚人节无关):Spring Boot,它——就在今天早上——终于发布了 GA!祝贺 Phillip WebbDr. Dave Syer (以及帮助他们的众多人士) 发布了这款令人惊叹的版本。

我不知道从外部看是什么样子,但在 Spring 团队内部,我们一直在关注 Philip 和 Dave 将 Boot 从概念、到制作出巨大反响的成熟原型 在 SpringOne2GX 2013,再到过去一年多的 GA 版本。Boot 已经影响了许多其他 Spring 项目,包括 Spring Framework 4.0。这是一项真正改变游戏规则的技术,而且不仅仅对 JVM 而言。

如果您还没有尝试过,那么现在就是时候了。有一个关于使用 Spring Boot 的视频,来自 STS 3.5 (也将很快发布)。STS 并不是必需的,但它确实有一些方便的工具!不妨看看。

  1. 重磅新闻:Spring Boot 1.0.0 已达到其第一个主要版本!
  2. Spring Integration 大师 Artem Bilan 刚刚宣布了 Spring Integration 3.0.2Spring Integration 4.0 M4。Spring Integration 3.0.2 中的新功能非常棒,但请向下滚动查看Spring Integration、Boot 和 Java 配置演示!我非常高兴看到这个版本。#boot
  3. Spring 负责人 Juergen Hoeller 宣布了 Spring 4.0.3 版本,支持 Java 8 并大大改进了 WebSocket 支持。
  4. Spring Data 传奇人物 Thomas Darimont 宣布 Spring Data Redis 1.2.1 现已发布。新版本包括对 RedisCacheManagerRedisTemplate 的错误修复。
  5. Spring Data 负责人 Oliver Gierke 刚刚发布了 Spring Data Dijkstra 的第一个里程碑版本。快来看看!
  6. 4 月 9 日,我将进行一次 vJUG 演示,全球直播,介绍 Spring Boot。我希望在有限的时间内展示使用 Spring Boot 构建应用程序的样子。我希望在那里见到您,并且欢迎您随时在 IRC 频道提出问题。#boot
  7. 我们的朋友 Chris Richardson 发表了一篇博文,描述了一种 使用 Spring Boot 构建微服务的方法。该示例使用 Scala。快来看看!#boot
  8. Spring Boot 已被提名 最具创新 Java 技术。我不确定投票过程如何进行,但一旦我找到信息,我会在这里发布。无论如何,我希望我们能依靠您的帮助来争取选票!#boot
  9. Marco Vermeulen 准备了一个非常精彩的演讲,介绍了 如何使用 Spring Boot 构建微服务,同样如此。这个示例使用 Groovy。#boot
  10. Jim Drannbauer 准备了一个 GitHub 仓库,演示了如何使用 最近发布的 Spring MVC Test HtmlUnit 和 Cucumber 组合。有了这个,您的单元测试几乎可以像人类句子一样阅读!#boot
  11. 我们的朋友 Matt Raible 又回来了,这次他带来了不止一篇,而是两篇关于使用 Spring Boot 的文章!第一篇文章演示了如何为 Spring Boot 应用程序添加 Swagger 集成,第二篇文章演示了使用 Ionic 框架构建一个 iOS 原生应用程序到 Boot 后端应用程序。#boot
  12. 全方位博客又回来了,这次带来了一篇关于将 Spring Boot 和 Scala 一起使用的文章。很棒!无论您使用什么语言,Boot 都是赢家!#boot
  13. Sergi Almar 本周再次回归,发表了一篇关于如何通过 JMX 监控 WebSocket 线程池以进行性能调优的文章。这是对他上一篇关于在 Spring 4 中检测 WebSocket 连接和断开的文章的出色续篇。#boot
  14. 我们网站的团队为我们的博客安装了 Disqus 用于评论。我希望我能向您展示邮件,但从“想法”到“评论上线!”的周转速度令人难以置信地快。甚至可以说是敏捷的。
  15. Adam Shook 在 SpringOne2GX 2013 上发表了一个演讲 SpringOne2GX 2013 回放:Hadoop - 面向大数据新手的基本知识,其回放现在可以在线观看。不要错过!
  16. David Turanski 和 Luke Taylor 在 SpringOne2GX 2013 的演讲 使用 Spring 进行实时分析的回放也已上线。快来看看!
  17. Spring LDAP 负责人 Mattias Arthursson 去年在 SpringOne2GX 2013 上介绍 Spring LDAP 2.0 的网络研讨会回放现在已上线。
  18. 您是否错过了 Spring 负责人 Juergen Hoeller 介绍 Spring 4 on Java 8 的网络研讨会?它现在可以观看了,绝对值得一看!

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

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

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

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

查看所有