Spring Integration 2.0 GA 发布

工程 | Mark Fisher | 2010 年 11 月 23 日 | ...

我非常高兴地宣布 Spring Integration 2.0 GA 已发布!

下载

包含 Spring Integration JARs、源代码 JARs 和文档的分发 zip 可在此处下载 here

依赖配置

这些构件稍后也应该可以在 Maven 中央仓库中获取。在此期间,您可以将 springframework Maven 仓库添加到您的 POM 中。下面的示例展示了对“spring-integration-core”的依赖以及 springframework 仓库条目。如果您计划使用任何我们的适配器,可以将“spring-integration-core”替换为相应的适配器…

拥抱 Spring 移动应用开发

工程 | Keith Donald | 2010年11月20日 | ...

SpringOne2gx 大会上,我们宣布了在社交媒体和移动应用程序开发领域令人兴奋的新举措。几周前,Craig Walls 发布了 Spring Social。今天,Roy Clarkson 发布了 Spring MobileSpring Android。在这篇文章中,我将重点介绍这些项目,并分享 Spring 如何旨在简化移动应用程序开发。

移动应用开发中的选择

如果您参加了今年的 SpringOne2gx,您会看到 Greenhouse,这是我们为社区构建的一个应用程序,它也作为 Spring 技术的参考和驱动。Craig 向您展示了 Greenhouse 的一些社交元素,例如将您的帐户与 Twitter 和 Facebook 连接的功能。还有许多移动元素。具体来说,Greenhouse 兼作移动 Web 应用程序,并支持原生的 iPhone 版 Greenhouse……

Spring Android 1.0.0.M1 发布

版本发布 | Roy Clarkson | 2010年11月20日 | ...

亲爱的Spring社区,

我们很高兴地宣布,Spring Android 项目的首个里程碑版本现已发布!

Spring Android 支持在 Android 环境中使用 Spring Framework。1.0.0.M1 版本的核心功能是 RestTemplate 支持,它为原生 Android 应用程序提供了一个强大的 REST 客户端。

为了帮助您入门,Keith 发布了一篇名为“Spring into Mobile Application Development”的博客,该博客深入介绍了该项目。

这个里程碑标志着未来激动人心的道路的开端。如果您正在构建与 Spring Web 应用程序通信的原生 Android 应用程序,我们邀请您加入 Spring Android 项目的开发!

Spring Mobile 1.0.0.M1 发布

版本发布 | Roy Clarkson | 2010年11月19日 | ...

亲爱的Spring社区,

我们很高兴地宣布 Spring Mobile 项目的第一个里程碑版本现已可用!

Spring Mobile 提供了 Spring MVC 的扩展,有助于跨平台移动 Web 应用程序的开发。1.0.0.M1 版本的决定性特性是支持服务器端设备检测。

为了帮助您入门,Keith 发布了一篇 “Spring 移动应用开发” 博客,其中深入介绍了该项目。

此里程碑是激动人心的道路上的第一步。我们邀请您参与 Spring Mobile 的开发,并期待您的反馈!

GORM 的另一种风味:MongoDB

工程 | Graeme Rocher | 2010年11月15日 | ...

我们使 GORM 普及到所有 NoSQL 存储的努力今天又达到了一个里程碑,我们很高兴地宣布 GORM for MongoDB

MongoDB 是一种文档数据库,它弥合了键值存储(快速且高度可扩展)和传统 RDBMS 系统(提供丰富的查询和深入功能)之间的鸿沟。

RedisGemfire 插件一样,GORM for MongoDB 完全支持 CRUD 操作

def person = new Person(name:"Fred", age: 45)
person.save()

person = Person.get(person.id)
assert person != null

person.delete()

assert Person.get(person.id) == null

使用动态查找器进行丰富的查询……

SpringSource Tool Suite 2.5.1 发布

发布 | Christian Dupuis | 2010年11月12日 | ...

尊敬的 Spring 社区

我很高兴地宣布,我们刚刚发布了 SpringSource Tool Suite (STS) 2.5.1.RELEASE。

新版本的一些亮点

  • 新功能使 Spring Roo 1.1.0.RELEASE 更强大
  • 支持 tc Server 2.1,包括 Spring Insight
  • Grails 项目现在可以直接从 STS 部署到 tc Server;只需将应用程序拖到服务器上,并确保启动新的 Spring Insight 来分析你的应用程序
  • Groovy 代码调试增强功能
  • JDT 编织默认启用

有关新功能和错误修复的更多详细信息,请参阅新功能和值得注意文档。还提供了详细的安装说明

与往常一样,下载可从 STS 下载页面获取。如果你有任何问题或疑问,请随时访问社区支持论坛

Hyperic 4.5 发布

工程 | Jennifer Hickey | 2010年11月10日 | ...

经过数月的开发,我很自豪地宣布Hyperic 4.5发布。在此版本中,我们将Hyperic从JBoss上运行的EJB应用程序迁移到Tomcat上运行的Spring Web应用程序。详细的迁移步骤在我的将Hyperic从EJB迁移到Spring的案例研究中进行了介绍,该案例研究最初在最近的SpringOne 2GX上发表。在这篇文章中,我想重点介绍一些我最喜欢的转换内容。

改进的可测试性

切换到Spring使我们能够将现有的无状态会话EJB转换为具有自动装配依赖项的POJO。这消除了许多使单元测试变得困难的静态JNDI查找代码。Spring还显著简化了集成测试。在转换之前,我们有少数集成测试,每个测试都需要几分钟来引导EJB容器的近似值。这个过程繁琐且容易出错。此外,测试通常会使数据库处于不一致状态,因此需要添加数据库设置或拆卸代码,这增加了测试执行时间的额外开销,并偶尔导致测试结果不一致。

转换后,我们能够利用Spring的集成测试支持来测试我们新的转换后EJB服务层,就像……

Green Beans: Putting the Spring in Your Step (and Application)

工程 | Josh Long | 2010年11月09日 | ...

Spring框架在2003年成为事实上的标准,并一直以来帮助人们用更简洁的代码构建更大、更好的应用程序。在本文中,我们将讨论使用Spring组件模型配置应用程序的可用选项。我们将从最简单的形式构建一个简单的应用程序,并对其进行重构,以利用Spring框架中的许多简化功能,这些功能使其成为当今应用程序的事实标准,并将继续如此。

现代企业 Java 应用程序中有许多协作对象,这些对象…

社交化 Spring 应用程序

工程 | Craig Walls | 2010年11月03日 | ...

如今,网民越来越多地使用互联网通过社交网站与朋友、家人和同事建立联系。曾经通过电子邮件进行的对话现在发生在 Facebook 墙上的短消息或 Twitter 上的简短推文中。曾经通过握手建立的联系现在通过 LinkedIn 建立。当希望面对面会面时,可以使用 TripIt 共享旅行详情。

正如人们使用这些社交网站相互交流一样,企业也在寻找方法将自己注入社交图谱,以便以更个人的方式与客户建立联系,并使他们的网站成为客户社交体验的延伸。

本周,我们很高兴发布了 Spring Social 的第一个里程碑版本,这是一个 Spring 的新扩展,旨在提供一个平台,用于构建具有社交功能的 Spring 应用程序。我想借此机会向您介绍 Spring Social,并让您初步了解它提供的功能。

安全共享社交数据

表面上看,开发与各种社交网络交互的应用程序似乎很简单。由于大多数社交网络都提供 REST API,Spring 的 RestTemplate 似乎就是您所需要的。但您很快会发现,这些社交 REST API 受 OAuth 保护,并且使用 OAuth 凭据签署通过 RestTemplate 发送的请求是一项非琐碎的任务。

OAuth 是一种开放协议,它允许用户与其在一个或多个服务提供商上托管的数据共享给另一个应用程序。通过访问这些数据,应用程序可以聚合、呈现和处理信息,从而提供超出服务提供商本身预期或设想的附加价值。

几乎所有主要的提供商都支持 OAuth,包括 Twitter、Facebook、LinkedIn、TripIt 和 Foursquare,以及 Google 和 Yahoo API。因此,OAuth 对于开发具有社交功能的应用程序至关重要。

在 OAuth 安全交互的开始阶段,有一个来回的对话,通常称为“OAuth 舞步”。在典型的 OAuth 舞步中,涉及三方:

  • 服务提供商(例如 Twitter 或 LinkedIn)
  • 希望访问或更新该服务提供商托管数据的用户。
  • 用户希望与之共享数据的消费者应用程序。

此舞步的关键步骤如下:

  1. 消费者应用程序将用户重定向到服务提供商的站点进行登录并授权消费者。
  2. 假设用户同意授予消费者访问其数据的权限,则流程将返回到消费者应用程序。
  3. 消费者应用程序从服务提供商处收到访问令牌。

步骤 3 中收到的访问令牌是任何请求服务提供商 REST API 都必须附带的“代客钥匙”。在 OAuth 1 中,这意味着访问令牌、请求 URL、参数以及其他一些信息被收集到一个基本字符串中,进行加密,然后作为 Authorization 标头发送到请求中。构造此标头并将其附加到请求是一项复杂的任务。这就是为什么使用 RestTemplate 访问 OAuth 安全资源很困难的原因。如果操作错误,服务提供商将对您尝试访问的任何资源响应 HTTP 401,并且对加密的 Authorization 标头进行调试很棘手。

使用社交模板

Spring Social 的一个关键组件是其社交模板集合。这些模板(在底层利用 RestTemplate)暴露了它们所模拟的服务提供商的操作,并处理了添加 OAuth Authorization 标头的复杂性。

Spring Social 1.0.0.M1 包含 4 个社交模板供您选择:

  • TwitterTemplate
  • FacebookTemplate
  • LinkedInTemplate
  • TripItTemplate

要使用这些模板中的任何一个,只需创建一个实例,通过构造函数参数提供 OAuth 连接详细信息。例如,创建 TwitterTemplate 的实例:

TwitterTemplate twitter = new TwitterTemplate(apiKey, apiSecret, accessToken, accessTokenSecret);

TwitterTemplate 构造函数中的四个参数都是 String 类型。API 密钥和 API 密钥在您向 Twitter 注册应用程序时获得(请参阅 http://dev.twitter.com/apps/new)。访问令牌和访问令牌密钥是在 OAuth 舞步与 Twitter 结束时按用户授予您的应用程序的。此时,我将假设您已经获得了这四个值;我们稍后会回到如何管理 API 密钥和令牌。

创建其他社交模板的实例并没有太大区别。LinkedInTemplateTripItTemplate 各自具有与上面显示的 TwitterTemplate 构造函数相同的参数列表的构造函数。由于 Facebook 的 API 安全性基于 OAuth 2,FacebookTemplate 的构造函数更简单,只需要访问令牌的值。

FacebookTemplate facebook = new FacebookTemplate(accessToken);

一旦您拥有了其中一个社交模板的实例,您可以用它做什么?如果您使用的是 TwitterTemplate,也许您想知道已认证用户的 Twitter 屏幕名称?

String screenName = twitter.getProfileId();

或者,如果您想做一些更复杂的事情,也许您可以代表用户发送一条推文?

twitter.updateStatus("Hey, I'm tweeting with #Spring Social!");

同样,有了 FacebookTemplate,您可以发布到用户的墙上。

facebook.updateStatus("Spring Social can also post to Facebook!");

如果您想查看用户的即将到来的旅行行程,TripItTemplategetTrips() 可以满足您的需求。

List trips = tripIt.getTrips();
for(Trip trip : trips) {
    System.out.println("I'm traveling to " + trip.getPrimaryLocation() +
                                 " on " + trip.getStartDate());
}

这只是 Spring Social 模板可以做的一些事情的示例。请查看 API 文档以了解可用的其他操作。

管理 OAuth 连接

当我上面创建 TwitterTemplate 实例时,我省略了 API 密钥/密钥和访问令牌的来源。起初,访问令牌将在用户授权应用程序访问其在服务提供商处托管的数据后获得。但您可能不希望每次用户使用您的应用程序时都强制他们进行授权,因此您需要一种方法来长期存储访问令牌,以便在将来的会话中重复使用。

在其第一个里程碑版本中,Spring Social 没有提供 OAuth 令牌管理策略,而是让应用程序自行获取和管理 OAuth 详细信息。这是我们计划在 1.0 Milestone 2 中解决的问题。但在此之前,我们可以参考 Greenhouse 来了解这可能如何成形。

在 Greenhouse 中,有关服务提供商的所有信息都存储在关系数据库的 ServiceProvider 表中,其架构如下:

如您所见,ServiceProvider 表包含提供商的 API 密钥和密钥等信息。为了访问单个服务提供商记录,Greenhouse 使用 JdbcServiceProviderFactory,它是 ServiceProvider 接口的实现。

package com.springsource…

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

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

了解更多

获得支持

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

了解更多

即将举行的活动

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

查看所有