本周 Spring:2011 年 3 月 29 日

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

好吧,是一个好星期!来自社区和 SpringSource 本身都涌现出很多好东西。

本周我被提醒,Spring 框架通常都有一些东西,如果你知道在哪里找,就能在简化或缓解手头的挑战方面发挥重要作用。通常,我会查看SpringSource 论坛JIRA 实例,并且 - 如果我充分确信它在论坛或 JIRA 中还没有解决或考虑在内 - 会在StackOverflow 的 Spring 类别中查找。SpringSource 工程师也会尝试监控论坛和 - 偶尔 - StackOverflow 论坛。此外,我喜欢边做边学 - 这是“一寸一寸地前进,难在…

抢先体验:适用于 Eclipse Indigo (3.7) 的 SpringSource Tool Suite

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

几天前,Eclipse 发布了 Eclipse Indigo (3.7) M6a 包供下载,所以现在是时候让我们允许您在该里程碑版本之上使用 SpringSource Tool Suite (STS) 了。:-)

它只是 STS 的抢先体验版本,但我们设法为 Eclipse 3.7 集成了所有组件:适用于 Eclipse 3.7 的 AJDT 版本、在 3.7 上运行的 Groovy-Eclipse 版本以及 SpringSource Tool Suite 本身,当然,其中包含 Spring IDE、Grails 工具以及您从 STS 中了解到的所有其他好功能 - 现在也都可以在最新的 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 项目的主要目标是简化构建使用新数据访问技术的 Spring 驱动的应用程序,例如非关系型数据库、MapReduce 框架和基于云的数据服务。

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

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

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

新的…

Spring Data JPA 1.0.0.M2 发布

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

尊敬的 Spring 社区:

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

  • Querydsl 谓词的支持,从而实现类型安全的 JPA 查询
  • 在引导时验证 @Query 注释的查询
  • 支持基于 XML 的实体映射
  • 支持查询方法中的 Distinct、In 和 NotIn 关键字
  • 将 Hades 扩展移植到 Spring Data Commons 核心
  • 各种错误修复。
<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>

下载 | JavaDoc | 参考文档 (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 是一种利用这些新的强大数据存储选项(有时称为“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 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. Spring MVC 负责人Keith Donald 介绍 Spring MVC 3 的视频来自 SpringOne2GX,已在 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 项目的主要目标是简化构建使用新数据访问技术的 Spring 驱动的应用程序,例如非关系型数据库、MapReduce 框架和基于云的数据服务。

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

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

要了解有关该项目的更多信息,请访问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 参数”标题下),我们看到了对消费者密钥、随机数和时间戳的提及。这些内容不适用于 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 社区中所有即将举行的活动。

查看全部