本周Spring动态:2011年3月29日

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

嗯,是精彩的一周!社区和SpringSource自身都涌现了许多好东西。

本周提醒了我,只要知道去哪里寻找,Spring框架通常都有可以极大地简化或缓解眼前挑战的方法。我经常会查看 SpringSource 论坛JIRA 实例,以及——如果我足够确信在论坛或 JIRA 中还没有得到解决或处理—— Spring 的 StackOverflow 分类。SpringSource 的工程师们会努力监控论坛,并且——不那么经常地——也会监控 StackOverflow 论坛。此外,我喜欢边学边做——这就像“一寸一寸地测量,一尺一尺地……”。

早期访问:SpringSource Tool Suite for Eclipse Indigo (3.7)

工程 | Martin Lippert | 2011年3月25日 | ...

Eclipse Indigo (3.7) M6a软件包自几天前起已在Eclipse上提供下载,因此现在是时候让您在这一里程碑版本上使用SpringSource Tool Suite (STS)了。:-)

这只是STS的一个早期访问版本,但我们已经为Eclipse 3.7准备好了一切:适用于Eclipse 3.7的AJDT版本,运行在3.7上的Groovy-Eclipse版本,以及当然,包含Spring IDE、Grails工具和其他您从STS熟悉的精美功能的SpringSource Tool Suite本身 - 所有这些现在都运行在最新的Eclipse Indigo里程碑版本之上。

如何安装

STS所需的依赖项均可从复合更新站点获取:http://dist.springsource.com/snapshot/TOOLS/composite/e3.7,如果您想手动添加任何内容。

我们还在 STS 的安装说明的“从夜间快照更新站点安装”部分包含了 3.7 的安装说明……

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

版本发布 | Thomas Risberg | 2011年3月25日 | ...

亲爱的Spring社区,

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

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

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

下载 | JavaDocs | 参考文档 | 更改日志

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

新的……

Spring Data JPA 1.0.0.M2 发布

发布 | Oliver Drotbohm | 2011年3月24日 | ...

亲爱的Spring社区,

我们很高兴地宣布 Spring Data JPA 项目的第二个里程碑版本现已发布!本次发布包含

  • Querydsl predicate 的支持,从而实现类型安全的 JPA 查询
  • 在引导时验证 @Query 注解的查询
  • 对基于 XML 的实体映射的支持
  • 在查询方法中对 Distinct, In 和 NotIn 关键字的支持
  • 将 Hades 扩展移植到 Spring Data Commons 核心
  • 各种 bug 修复。
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-jpa</artifactId>
    <version>1.0.0.M2</version>
</dependency>

<repository>
    <id>org.springframework.maven.milestone</id>
    <name>Spring Maven Milestone Repository</name>
    <url>http://maven.springframework.org/milestone</url>
</repository>

下载 | JavaDocs | 参考文档 (HTML) | 参考文档 (PDF) | 变更日志

期待您在 论坛问题跟踪器 中提供反馈。

本周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几周前在网络研讨会上介绍了令人兴奋的下一代(3.1) Spring框架,该内容也在SpringSource YouTube频道上
  3. Martin Lippert宣布了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上有Mark Pollack和Chris Richardson在去年芝加哥SpringOne2GX活动上关于Spring Data的精彩入门介绍视频。Spring Data是一个很好的方式,可以以Spring用户熟悉且惯用的方式利用这些新的、强大的数据存储选项(有时称为“NoSQL”存储)。快来看看吧!
  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 Tool Suite 2.6.0 发布

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

亲爱的Spring社区,

我们很高兴地宣布 SpringSource Tool Suite (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 Tool Suite入门*。本次演示将为有经验的开发者提供一些新方法的视角,并为新技术的新手提供入门机会,快速进入富有成效的应用程序开发。此外,与会者将有机会向演示者和嘉宾提问。本次网络研讨会将举行两次,一次面向欧洲,一次面向北美。希望在那里见到您!
  2. InfoQ.com现已发布Spring MVC负责人Keith Donald介绍Spring MVC 3的视频。这是一个非常棒的视频,在短短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 项目的主要目标是简化构建使用新型数据访问技术(如非关系型数据库、MapReduce 框架和基于云的数据服务)的 Spring 应用程序。

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

下载 | JavaDocs | 参考文档 | 更改日志

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

新的……

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

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

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

为 Netflix 扩展 Spring Social

假设您正在开发一个电影评论网站,用户可以在其中阅读和发布简短的电影评论。通常,电影评论会显示在主页上,最新的条目排在最前面。但是,如果用户将其帐户与 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 参数”标题下),我们看到了关于客户端密钥、随机数和时间戳的提及。这些都不是 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 上发送,而不是在请求令牌请求中发送。
  • 没有验证器的概念,并且不需要将 oauth_verifier 参数发送到访问令牌 URL。

对于 OAuth 1.0a,请留意以下迹象:

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

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

最后,我们需要知道请求令牌、授权和访问令牌的 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。” 令人兴奋……

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

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

了解更多

获得支持

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

了解更多

即将举行的活动

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

查看所有