本周的 Spring:2011年3月22日

工程 | Josh Long | 2011年3月23日 | ...

又一个伟大的一周 - 带来了许多新的(甚至是新颖的!)内容类型,而且确实,还有新的内容来源!尽情享受吧!

  1. SpringSource 发布了新的 SpringSource YouTube 频道。该频道提供了关于 SpringSource 技术的精彩技术内容,应该是您获取新内容以及之前可能错过的内容的首选目的地。今天就来看看吧!就我个人而言,我觉得这个频道在大屏幕电视上观看效果极佳,特别是支持浏览器或 YouTube 的电视(Google TV/Apple TV/slingbox 等)或者作为外接屏幕观看——比如第二台笔记本电脑或第二台显示器。您也可以在通勤时,在车里使用 iPhone 等便携设备收听。
  2. ……说到 YouTube 频道,上周网络研讨会的内容和幻灯片 - Spring 和 STS 入门 - 现已提供给错过的人。Spring 框架负责人 Juergen Hoeller 在几周前的一次在线研讨会中介绍了令人兴奋的下一代 Spring 框架 (3.1),该研讨会在 SpringSource YouTube 频道上提供
  3. Martin Lippert 宣布发布了最新版本的 SpringSource 工具集 (SpringSource Tool Suite) 2.6.0。 新版本包含大量新功能,并跟踪了各种项目的最新版本(Spring Roo 1.1.2、Eclipse Helios SR2、Groovy 1.7.8、Grails 1.3.7)。它包括了对 Spring Roo 和 Groovy on Grails 的更新支持和性能改进,提供了 Spring Web Flow 的图形编辑器,并新增了对 Spring 注解(@Autowired@Qualifier@RequestMapping 等)的内容辅助、快速修复和重构支持。
  4. Ramnivas Laddad 向《本周的 Spring》介绍了这个非常创新的 Chrome 浏览器插件。使用它时,在多功能地址栏(搜索/地址栏)中输入“spring”,然后空格,接着输入您要搜索的类的名称。它会自动弹出链接到文档的候选项结果!棒极了,而且很方便!(注意:我们使用刚发布的 Chrome 10 测试了此功能,尽管它无疑至少适用于 Chrome 9。)

  5. InfoQ 发布了去年在芝加哥举行的 SpringOne2GX 活动上 Mark Pollack 和 Chris Richardson 带来的 精彩 Spring Data 介绍视频。Spring Data 是利用这些新的、功能强大的数据存储选项(有时称为“NoSQL”存储)的绝佳方式,它对 Spring 用户来说既熟悉又符合习惯用法。来看看吧!
  6. Spring Data 项目的最新版本 已发布,支持 Neo4j。新版本包含许多新功能,并跟踪了 Neo4j 本身的最新版本。Neo4j 是当今开发者可用的众多新型专业数据存储之一。Neo4j 将数据建模为关系和节点。它针对快速节点遍历进行了优化,例如在 Facebook 朋友关系图谱中。
    此外,SpringSource 将于 4 月 20 日举办一个关于 Spring Data 的网络研讨会(特别是包含 Neo4j 支持的 Spring Data Graph 子项目)。该演示将针对 北美欧洲 的听众。立即注册吧!
  7. Spring 框架帮助您构建最佳应用程序。Spring Social 在此基础上,让您的应用程序能够与用户集成。JTeam 团队再次出手,这次带来了一篇有趣的关于 Spring Social 的最新介绍,附带源代码和示例应用程序。来看看吧!
  8. Spring MVC 支持多种不同类型的视图,包括 RESTful 负载、Velocity 模板、JSP 和基于 Tiles 的视图。这篇博文解释了如何将 Spring MVC 与 Tiles 集成
  9. 来自 Chariot Solutions 的 Ken Rimple 录制了一段关于 SpringSource 家族最新成员 Wavemaker截屏视频
  10. 现在使用 Spring 框架的人比以往任何时候都多,这种增长的结果是各种工具对 Spring 提供了更新、更专业的支持。一家 UML 工具制造商 Architexa 谈论了他们在基于 Eclipse 的产品中对 Spring 框架的增强支持。查看这篇博客了解更多
  11. Ashish Jain 对 Spring 3.1 的新缓存支持提供了一个有趣的视角。

    Ashish 选择简化他的软件堆栈(通过移除 Hibernate,转而使用 Spring 框架的 JdbcTemplate 直接进行 JDBC 操作,这是一个……)

SpringSource 工具集 2.6.0 发布

发布 | Martin Lippert | 2011年3月18日 | ...

亲爱的 Spring 社区,

我们很高兴地宣布 SpringSource 工具集 (STS) 的新版本 2.6.0 已发布。

本次版本的一些亮点

  • 包含所有从 2.5.2.SR1 获得的更新(Spring Roo 1.1.2、Eclipse Helios SR2、Groovy 1.7.8、Grails 1.3.7)
  • Roo 插件管理器
  • 对 @Autowired, @Qualifier, @RequestMapping 的内容辅助、快速修复和重构
  • Spring Web Flow 的新图形编辑器
  • Groovy + Grails 工具的许多新功能和性能改进

有关新功能和错误修复的更多详细信息可在新特性和重要说明文档中找到。详细的安装说明也已提供。

一如既往,您可以从STS 下载页面获取下载。

本周的 Spring:2011年3月15日

工程 | Adam Fitzgerald | 2011年3月16日 | ...

对于优秀、深入的内容来说,又是很棒的一周。本周列表上的大多数项目最好在享用一杯好咖啡和舒适的椅子时欣赏。 :-) 尽情享受吧!

  1. SpringSource 将于本周四举办一次免费网络研讨会 - Spring 和 SpringSource 工具集入门 。该演示将向有经验的开发者介绍一些新方法,并为该技术的新手提供入门机会,使其能够快速投入到高效的应用程序开发中。此外,与会者将有机会向演示者和专家小组提问。网络研讨会将举行两次,一次针对欧洲,一次针对北美。期待在那里见到您!
  2. Spring MVC 负责人 Keith Donald 在 SpringOne2GX 活动中介绍 Spring MVC 3 的视频已在 InfoQ.com 上发布。这个视频很棒,短短 90 分钟内包含大量信息。来看看吧!
  3. Craig Walls 本周发表了关于扩展 Spring Social 的服务提供商框架的文章,这次介绍了一个与 Netflix API 集成的示例。这篇文章信息量很大,而且很有启发性——我在阅读时忍不住冒出了许多令人兴奋的应用程序想法。
    </li>
    
  4. 这篇 VMware 白皮书很好地介绍了如何从 Java EE 应用程序服务器迁移到更精简、更强大的 SpringSource tcServer。读起来很有趣——并突出了一些非常有趣的信息。来看看吧!
  5. 	<li>The whitepaper exploring a migration from a Java EE application to tcServer has a companion <a href="http://java.sys-con.com/node/1750240">in this VMware</a> whitepaper,  that talks about the migration from Tomcat to tcServer. Pretty exciting!
    
  6. 这篇博文介绍了高吞吐量、异步的 Servlet 3.0 应用程序。这篇文章对使用 Tomcat 或 tcServer 的人特别有用,因为它们代表了迄今为止最大的 Servlet 3.0 兼容安装基础。

Spring Data Graph - Neo4j 支持 1.0.0.M4 发布

发布 | Thomas Risberg | 2011年3月16日 | ...

亲爱的 Spring 社区,

我们很高兴地宣布,支持 Neo4j 的 Spring Data Graph 1.0 项目的新里程碑版本 (1.0.0.M4) 现已可用!

Spring Data 项目的主要目标是简化构建使用非关系型数据库、Map-Reduce 框架和基于云的数据服务等新型数据访问技术的 Spring 驱动应用程序。

Graph Neo4j 模块提供了与 Neo4j 图数据库的集成。

下载 | JavaDoc | 参考文档 | 更新日志

要了解有关该项目的更多信息,请访问Spring Neo4j 主页

新的……

扩展 Spring Social 的服务提供商框架

工程 | Craig Walls | 2011年3月10日 | ...

上周,我向您介绍了 Spring Social 的服务提供商“连接”框架,并展示了它如何简化在用户本地应用程序帐户与其在 SaaS(软件即服务)提供商帐户之间创建连接。今天,我想向您展示如何扩展服务提供商框架以处理与 Spring Social 不直接支持的提供商的连接。

扩展 Spring Social 以支持 Netflix

假设您正在开发一个电影评论网站,用户可以在其中阅读和发布简短的电影评论。通常,电影评论会按最新发布的时间顺序显示在主页上。但如果用户将其帐户连接到他们的 Netflix 帐户,那么您可以向他们显示其 Netflix 影碟队列中电影的评论。为了实现这一点,您希望利用 Spring Social 的服务提供商框架将您的用户帐户与其 Netflix 帐户连接起来。Spring Social 1.0.0.M2 不包含 Netflix 服务提供商或 API 绑定,但可以轻松扩展以支持不直接支持的提供商。

在本文中,我将向您展示如何基于 Spring Social 的服务提供商框架构建,以启用与 Netflix 的连接。我们将从开发一个 Netflix 服务提供商实现开始,然后构建一个简单的 API 绑定来支持我们应用程序的需求。用于开发 Netflix 服务提供商的技术可以应用于扩展 Spring Social 以支持几乎任何服务提供商。您可以通过查看 GitHub 上的示例代码来跟随操作。

了解 Netflix 的授权 API

在开始开发 Netflix 服务提供商实现之前,我们需要做一些前期研究,以了解关于 Netflix 授权 API 工作原理的一些基本细节。

我们首先需要确定的是 Netflix 使用哪种授权协议。Netflix API 文档的身份验证概述部分告诉我们他们使用 OAuth,但没有明确说明使用的是 OAuth 规范的哪个版本。因此,需要进行一些侦探工作。

在页面下方一点(在“那些烦人的 OAuth 参数”标题下),我们看到了关于消费者密钥 (consumer keys)、nonce (nonces) 和时间戳 (timestamps) 的提及。这些内容不适用于 OAuth 2,所以 Netflix 一定是 OAuth 1 的提供商。此外,对 oauth_version 参数设置为“1.0”的描述进一步证实了 Netflix 实现了 OAuth 1。

现在我们知道 Netflix 使用 OAuth 1。但了解他们是实现了规范的 1.0 版本还是 1.0a 版本也很重要。服务提供商通常不会在他们的文档中明确说明这一点,而且无论哪种情况,oauth_version 的值都应该是“1.0”。然而,有一些明显的迹象表明 OAuth 规范的具体版本。以下是一些表明正在使用 OAuth 1.0 的线索:

  • oauth_callback 参数在授权 URL 中发送,而不是在请求令牌请求中发送。
  • 没有验证器 (verifier) 的概念,并且不需要向访问令牌 URL 发送 oauth_verifier 参数。

对于 OAuth 1.0a,请注意这些迹象:

  • oauth_callback 参数在请求令牌请求中发送,而不是在授权 URL 中发送。
  • 在回调中从提供商接收到验证器,并且必须将 oauth_verifier 参数发送到访问令牌 URL。

在 Netflix 文档中寻找这些线索后,我们确定 Netflix 使用的是 OAuth 1.0(而非 1.0a)。此信息非常重要,在我们定义服务提供商实现时将会很有用。

最后,我们需要知道请求令牌 URL、授权 URL 和访问令牌 URL 是什么。在页面下方(“进行受保护调用”标题下)您可以找到详细信息,这些信息告诉我们所需的 URL 如下:

  • 请求令牌 URL: http://api.netflix.com/oauth/request_token
  • 授权 URL: https://api-user.netflix.com/oauth/login
  • 访问令牌 URL: http://api.netflix.com/oauth/access_token

请特别注意请求和访问令牌 URL 中使用的协议。大多数提供商在这方面很灵活,推荐使用 https。然而,根据我使用 Netflix 的经验,我发现如果您通过 https 请求令牌或访问令牌,Netflix 会抱怨请求签名无效。不过,授权 URL 通过 https 是正常的。

开发 Netflix 服务提供商实现

要创建一个新的服务提供商实现,我们需要扩展 AbstractOAuth1ServiceProviderAbstractOAuth2ServiceProvider。这两个类分别为 OAuth 1.0/1.0a 和 OAuth 2 提供特定于 OAuth 版本的基类功能。由于 Netflix 是一个 OAuth 1.0 提供商,我们的 NetFlixServiceProvider 将需要扩展 AbstractOAuth1ServiceProvider


package org.springframework.social.movies.netflix;
import org.springframework.social.connect.oauth1.AbstractOAuth1ServiceProvider;
import org.springframework.social.connect.support.ConnectionRepository;
import org.springframework.social.oauth1.OAuth1Template;

public final class NetFlixServiceProvider extends AbstractOAuth1ServiceProvider<NetFlixApi> {

    public NetFlixServiceProvider(String consumerKey, String consumerSecret, ConnectionRepository connectionRepository) {
        super("netflix", connectionRepository, consumerKey, consumerSecret, 
            new OAuth…

本周的 Spring:2011年3月8日

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

本周又迎来了令人兴奋的新版本和更新浪潮,社区内容丰富多彩,还有振奋人心的公告,欢迎 WaveMaker 加入 SpringSource 大家庭。

  1. Rod Johnson 今天在 SpringSource 博客中宣布了收购 WaveMaker 的消息。WaveMaker 是一款广泛使用的图形化工具,使非专业开发者能够快速构建 Web 应用程序。博文中写道:“虽然 WaveMaker 已经是 Spring 生态系统的一部分,但现在它将成为 Spring 家族和 VMware 云战略不可或缺的一部分。WaveMaker 的所有员工都将加入 VMware。”激动人心的……

拥抱庞大新受众:VMware 收购 WaveMaker

工程 | Rod Johnson | 2011年3月8日 | ...

今天,VMware 通过这篇博客宣布收购WaveMaker,这是一款广泛使用的图形化工具,使非专业开发者能够快速构建 Web 应用程序。 虽然 WaveMaker 已经是 Spring 生态系统的一部分,但现在它将成为 Spring 家族和 VMware 云战略不可或缺的一部分。WaveMaker 的所有员工都将加入 VMware。

本次收购通过赋能更多开发者构建和运行能够与底层基础设施共享信息以最大化性能、质量的现代应用程序,从而推进了 VMware 的云应用平台战略……

本周的 Spring:2011年3月1日

工程 | Josh Long | 2011年3月2日 | ...

本周又迎来了一波令人兴奋的新版本和更新浪潮,以及丰富的社区内容。

抓紧帽子!

让我们直接开始吧。

  1. Spring Roo 1.1.2 已发布。 这个新版本包含自上个月 1.1.1 版本以来超过 200 项增强、新功能和修复。其中一些亮点包括增强的工具可用性、持久化增强、GWT 和 Spring MVC 增强以及库升级。
  2. Martin Lippet 刚刚宣布了SpringSource 工具集 2.5.2.SR1 和 2.6.0.M2 版本的发布

    2.5.2.SR1 “刷新”版本更新了对 Groovy 1.7.8、Grails 1.3.7 的支持,更新到 Eclipse Helios SR2 (3.2.6),以及刚发布的 Spring Roo 1.1.2。2.6.0.M2 里程碑版本还包括一个 Roo 插件管理器,改进了对 @RequestMapping 的支持,以及对 Groovy 和 Grails 工具的大量改进。

  3. Martin Lippet 还整理了关于这个经常被问到且新近得到解答的问题的信息:如何

    贡献自定义项目……

Spring Social 服务提供商框架介绍

工程 | Craig Walls | 2011年3月2日 | ...

在我的上一篇文章中,我向您介绍了 Spring Social 对流行的软件即服务 (SaaS) API(如 Twitter、Facebook、LinkedIn 和 TripIt)的 Java 绑定。除了为常见的 API 操作提供简单、强类型的 Java 方法外,这些绑定还确保每个 HTTP 请求都包含授权您的应用程序代表用户调用 API 所需的凭据。

我的第一篇文章没有解决的问题是:我们如何管理代表用户调用服务 API 所需的凭据? 我很高兴地告诉您,现在我们对此问题有了答案。

本周早些时候,我们宣布发布 Spring Social 项目的第二个里程碑版本。Spring Social 1.0.0.M2 中最重要的新功能是引入了服务提供商“连接”框架。今天我想向您介绍这个框架,并展示如何使用它来管理与 SaaS 提供商的“连接”。

本文中的示例来自 Spring Social Showcase。要跟随操作,请克隆仓库并按照 README 文件构建和部署示例应用程序。

获取 Spring Social

随着 M2 版本的发布,Spring Social 已被拆分为几个模块:

  • spring-social-core - 服务提供商框架、OAuth 支持和核心类。
  • spring-social-web - 连接控制器和支持类型。
  • spring-social-facebook - 用于连接 Facebook 的服务提供商实现,以及通过 Facebook 登录应用程序的支持。
  • spring-social-twitter - 用于连接 Twitter 的服务提供商实现,以及通过 Twitter 登录应用程序的支持。
  • spring-social-linkedin - 用于连接 LinkedIn 的服务提供商实现。
  • spring-social-tripit - 用于连接 TripIt 的服务提供商实现。
  • spring-social-github - 用于连接 GitHub 的服务提供商实现。
  • spring-social-gowalla - 用于连接 Gowalla 的服务提供商实现。
  • spring-social-test - 用于测试服务提供商实现和 API 绑定的支持。

根据您的需求,您不一定需要所有这些模块。至少,您需要核心模块。您可以通过以下条目将其添加到 Maven 构建的项目中:


<dependency>
    <groupId>org.springframework.social</groupId>
    <artifactId>spring-social-core</artifactId>
    <version>1.0.0.M2</version>
</dependency>

如果您很可能在 Web 应用程序中使用 Spring Social,您还需要 Web 模块:


<dependency>
    <groupId>org.springframework.social</groupId>
    <artifactId>spring-social-web</artifactId>
    <version>1.0.0.M2</version>
</dependency>

然后,您需要添加一个或多个提供商模块。在我们的示例中,我们将讨论向应用程序添加 Twitter 连接,因此我们需要 twitter 模块:


<dependency>
    <groupId>org.springframework.social</groupId>
    <artifactId>spring-social-twitter</artifactId>
    <version>1.0.0.M2</version>
</dependency>

由于我们是基于 Spring Social 的里程碑版本进行构建,因此需要将 Spring 的里程碑仓库添加到 pom.xml 文件中:


<repository>
	<id>org.springframework.maven.milestone</id>
	<name>Spring Maven Milestone Repository</name…

订阅 Spring 新闻通讯

订阅 Spring 新闻通讯,保持连接

订阅

抢占先机

VMware 提供培训和认证,助您快速前进。

了解更多

获取支持

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

了解更多

即将举行的活动

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

查看全部