Spring Integration 2.0 GA 版本发布

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

我很高兴地宣布 Spring Integration 2.0 GA 版本已发布!

下载

包含 Spring Integration JAR 包、源代码 JAR 包和文档的压缩包可以在这里下载。

依赖配置

这些构件也应该在今天晚些时候出现在 Maven 中央仓库中。在此期间,您可以将 springframework Maven 仓库添加到您的 POM 文件中。以下示例显示了对“spring-integration-core”的依赖关系以及 springframework 仓库条目。如果您计划使用任何适配器,您可以将“spring-integration-core”替换为相应的适配器……

进军移动应用开发

工程 | 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 应用,并且拥有原生Greenhouse for iPhone……

Spring Android 1.0.0.M1 版本发布

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

亲爱的 Spring 社区:

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

Spring Android 支持在 Android 环境中使用 Spring Framework。1.0.0.M1 版本的定义特性是 RestTemplate 支持,它提供了一个强大的 REST 客户端,可在原生 Android 应用中使用。

为了帮助您入门,Keith 发布了一篇进军移动应用开发博客文章,其中提供了对该项目的深入了解。

这个里程碑是未来令人兴奋的旅程中的第一步。如果您正在构建与 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 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)
  • 现在可以直接从 STS 中将 Grails 项目部署到 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 的新服务层……

绿色 Bean:让 Spring 融入您的步伐(和应用程序)

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

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

现代企业级 Java 应用程序具有许多协作对象……

使 Spring 应用社交化

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

越来越多的网民正在使用互联网通过社交网站与朋友、家人和同事联系。曾经通过电子邮件进行的对话现在正在通过写在某人 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)公开其建模的服务提供商的操作,为您处理添加 OAuthAuthorization标头的复杂性。

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

  • TwitterTemplate
  • FacebookTemplate
  • LinkedInTemplate
  • TripItTemplate

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

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

TwitterTemplate构造函数的四个参数都是字符串值。当您在 Twitter 上注册您的应用程序时,会为您提供 API 密钥和 API 密钥秘密(参见http://dev.twitter.com/apps/new)。访问令牌和访问令牌密钥在与 Twitter 的 OAuth 认证流程结束时,会按用户授予您的应用程序。在这一点上,我假设您已经获得了所有这四个值;稍后我们将回到如何管理 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 里程碑 2 中解决的问题。但是,与此同时,我们可以查看Greenhouse,了解这可能如何形成。

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

如您所见,ServiceProvider表包含(除其他外)提供商的 API 密钥和密钥秘密。为了访问单个服务提供商记录,Greenhouse 使用JdbcServiceProviderFactory,这是ServiceProvider接口的实现。

package com.springsource…

获取 Spring 新闻

通过 Spring 新闻保持联系

订阅

领先一步

VMware 提供培训和认证,以加快您的进度。

了解更多

获取支持

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

了解更多

即将举行的活动

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

查看全部