使用 Python 构建 RabbitMQ 应用

工程 | Greg L. Turnquist | 2010年8月19日 | ...

RabbitMQ 是一个基于 高级消息队列协议 (AMQP) 的强大消息中间件。由于 AMQP 规范的通用性,可以轻松地从包括 Python 在内的许多平台连接到它。在本篇博文中,我们将

  • 创建一个简单的股票行情 Python 应用
  • 创建一个决定何时买卖的经纪商 Python 应用。
  • 比较由 RabbitMQ 团队创建的 AMQP 库 pikapy-amqplib
您可以在 http://github.com/gregturn/amqp-demo 找到此博文的所有源代码。这需要您已经根据 您平台的说明 安装并启动了 RabbitMQ。我个人是在我的 Mac OS X (Snow Leopard) 机器上运行的。

顺便说一句

本篇博文中编写的代码仅用于演示目的。请勿依赖这些算法作为财务建议。
闲话不多说,让我们开始写代码吧!

构建股票行情

消息解决方案的一个很好的例子是股票行情系统。股票交易所向消息中间件发布消息,指示股票名称、价格和时间。
import pickle
import random
import time

class Ticker(object):
    def __init__(self, publisher, qname):
        self.publisher = publisher

        # This quickly creates four random stock symbols
        chars = range(ord("A"), ord("Z")+1)
        def random_letter(): return chr(random.choice(chars))
        self.stock_symbols = [random_letter…

Spring 3.0.4 现已发布

发布 | Adam Fitzgerald | 2010年8月19日 | ...

Arjen Poutsma 刚刚 宣布 Spring 3.0.4 现已发布。此版本解决了 80 多个小问题,并更新了 Spring 对一些近期第三方版本(包括 Hibernate Core 3.6、Hibernate Validator 4.1、EclipseLink 2.1 和 EHCache 2.2)的支持。

下载 | 文档 | Javadoc API | 变更日志 | JIRA

Spring 的所有最新功能以及高级技术讲座和路线图讨论将在 2010 年 10 月 19 日至 21 日在芝加哥举行的 SpringOne 2GX 2010 上进行。请务必 立即注册 以锁定早期注册折扣。

请记住,Spring 用户可以在 社区论坛中提问,并在 JIRA 中报告问题。

使用 Grails 简化 Spring Security

工程 | Peter Ledbrook | 2010年8月11日 | ...

Spring Security 是一个强大的应用程序安全库,它提供了令人眼花缭乱的选项。基于 Spring,它可以轻松集成到 Grails 应用程序中。但为什么不省去麻烦,使用 新改进的 Grails 插件呢?

该插件经历了几个演变阶段,始于 Acegi 插件。它最近的一次迭代是为 Spring Security 3 和 Spring 3 进行的一次彻底重写。其中一个结果是,该插件仅与 Grails 1.2.2 及更高版本兼容。另一个重大变化是,不再只有一个 Spring…

Virgo 里程碑 M03 发布

工程 | Christopher Frost | 2010年8月10日 | ...

Virgo 2.1.0.M03-incubator 可从 Virgo 网站下载。更改包括

  • 进一步的性能改进,特别是对 Windows 用户。
  • 将 Logback 版本更新到 0.9.24,SLF4J 更新到 1.6.1
  • 次要 bug 修复

性能改进是通过调整入口退出跟踪的日志级别实现的。

由于新版本的 Logback,配置文件“serviceability.xml”的语法略有改变。更多信息可以在这里找到。

我们现在已经发布了 Virgo 未来发展蓝图的计划大纲,以便您更好地了解我们的发展方向。

Hyperic 通过 vCenter API 在 4.4 版本中扩展 vSphere 支持

工程 | Charles Lee | 2010 年 8 月 6 日 | ...

SpringSource Hyperic 4.4 于本周早些时候发布,它通过与 VMware vCenter 集成,增强了对 VMware 虚拟化环境的管理。 Hyperic 长期以来一直支持 VMware 技术(又称 VMware Infrastructure 或 VI),VI Java API (http://vijava.sf.net) 的可用性使我们的工作变得容易得多,因为功能强大的 SDK 简化了 Java 应用程序当时与 VI 交互的方式。通过采用 VI Java API,我们能够轻松跟上 VMware 从 VI 到 VMware vSphere 的演变,正如今天所知。这也使我们能够……

Spring Web Flow 2.2.0.M1 发布

工程 | Rossen Stoyanchev | 2010年8月5日 | ...

我很高兴地宣布 Spring Web Flow 2.2 的第一个里程碑版本现已可供 下载。该版本也可通过 Maven 里程碑存储库 http://maven.springframework.org/milestone 获取。与 Spring Web Flow 2.1 一样,此版本需要 JDK 1.5、Spring 3 和 Spring Security 3。

此版本的主要重点是满足 JSF 用户需求,通过扩展支持的 JSF 2 功能列表。不久前,Web Flow 2.1 使在不需要与目前常用的 JSF 1.2 分开的 Sun Facelets jar 的情况下使用 JSF 2 依赖成为可能。

在 Spring Web…

Spring GemFire 1.0.0.M1 发布,支持 Java 和 .NET

工程 | Costin Leau | 2010 年 8 月 3 日 | ...

我很高兴地宣布 Spring GemFire 项目的第一个里程碑 版本发布,这是 Spring 大家族中的新成员。Spring GemFire(简称 SGF)将 Spring 的概念和编程模型引入到 GemFire,即 SpringSource 的分布式 数据管理平台。本次发布同时支持 Java.NET

1.0.0.M1 版本包含以下特性:

  • GemFire 基础设施的声明式依赖注入风格配置(例如Cache, Region, Interest等)
  • 异常翻译到 Spring 的可移植DataAccess异常层次结构
  • 方便访问原生 API 的模板和回调支持
  • 事务管理支持
  • Spring 支持的 GemFire 管理对象注入
  • 自动生成非反射式Instantiators
请注意,其中一些特性目前仅在 Java 版本中提供。
通过 SGF,Spring 用户在与 GemFire 交互时应该会感到非常熟悉,而熟悉 GemFire 的开发者将看到 Spring 容器的优势和灵活性、其强大的 AOP 集成以及通用的服务抽象。但不要只听我的一面之词——下载项目并试用示例应用程序。它是一个基于控制台的“shell”,允许对数据网格进行即席交互;用户可以启动和停止节点,并查看多个客户端之间透明共享的信息。

我们期待您的反馈!

Google App Engine 中的 Spring Security

工程 | Luke Taylor | 2010年08月02日 | ...

Spring Security 以其高度可定制性而闻名,因此在我第一次尝试使用 Google App Engine 时,我决定创建一个简单的应用程序,通过实现一些核心 Spring Security 接口来探索 GAE 功能的使用。本文我们将了解如何:

  • 使用 Google 账户进行身份验证。
  • 当用户访问受保护资源时,实现“按需”身份验证。
  • 用应用程序特定的角色补充 Google 账户的信息。
  • 使用原生 API 将用户账户数据存储在 App Engine 数据存储中。
  • 根据分配给用户的角色设置访问控制限制。
  • 禁用特定用户的账户以阻止访问。

您应该已经熟悉将应用程序部署到 GAE。启动和运行一个基本应用程序不需要很长时间,您将在 GAE 网站上找到大量相关指导。

示例应用程序

该应用程序非常简单,使用 Spring MVC 构建。应用程序根目录部署了一个欢迎页面,您可以进入“主页”,但只有在通过应用程序身份验证并注册后才能进入。您可以在 此处 尝试在 GAE 中部署的版本。

注册用户存储为 GAE 数据存储实体。首次进行身份验证时,新用户将被重定向到……

GORM 陷阱 (第三部分)

工程 | Peter Ledbrook | 2010年7月28日 | ...

很高兴听到这些文章对人们有所帮助,因此我非常乐意为这个系列再添一篇。这次我将再次讨论关联,但重点放在它们何时被加载到内存中。

更新 2010年8月2日 我为了一对多关系增加了关于延迟加载的更多信息,因为有一些问题需要注意。

惰性加载很棒

人们学习 GORM 关联时首先了解的事情之一是,它们默认是惰性加载的。换句话说,当您从数据库获取一个域实例时,它的任何关联都不会被加载…

Spring MVC 3 演示

工程 | Keith Donald | 2010年7月22日 | ...

自去年 Spring 3 大版本发布以来,我一直在进行许多应用程序开发项目,并提取各种框架功能的“演示”。这些“演示”不是参考应用程序或教程,它们更像是针对特定框架能力的验收测试。看完一个演示后,您应该对该技术能做什么有一个很好的了解。

我整理的第一个演示是针对我们的 Web 框架 Spring MVC 3。它包括一个示例项目,以及配套的幻灯片演示和截屏视频。深入研究后,您应该会有一个好的……

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

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

了解更多

获得支持

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

了解更多

即将举行的活动

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

查看所有