Spring Data MongoDB 1.0.0 M4 发布

新闻 | Oliver Drotbohm | 2011年9月2日 | ...

尊敬的 Spring 社区成员:

我很高兴地宣布 Spring Data MongoDB 1.0.0 M4 现已可用。以下是添加的最重要功能:

  • 支持 MongoTemplate 中的 map-reduce 操作
  • 提供了一种使用外部化查询的方法,以便由存储库执行
  • 支持 MongoTemplate 和存储库上的 geoNear 查询
  • MongoTemplate 上新的 DocumentCallbackHandler 接口
  • 现在可以在 SimpleDbFactory 上配置数据库范围的 WriteConcern
  • 可在 MongoFactoryBean 上配置 WriteConcern
  • 添加了一个 QuerydslRepositorySupport 基类,以便于实现基于 Querydsl 的存储库
  • 可配置的 TypeMapper 接口,用于控制如何将类型信息写入和检索到 MongoDB 文档中

除此之外,我们还修复了大量的错误并进行了改进,主要是在映射子系统和性能方面。有关已修复问题的详细列表,请查看变更日志

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

要了解有关该项目的更多信息,请访问 Spring Data MongoDB 页面。期待您在论坛问题跟踪器中提供反馈。

本周 Spring:2011年8月30日

工程 | Josh Long | 2011年8月31日 | ...

欢迎来到另一期“本周 Spring”。内容很多,我们开始吧。快速说明一下:如果您在阳光明媚的拉斯维加斯参加 VMworld 2011,请过来参观云应用平台展台,并打个招呼。

  1. 对于CloudFoundry来说,这是一个多么棒的一周!本周发布并提供了Micro Cloud Foundry,这是一个可免费下载的“随身携带的 PaaS”。Micro Cloud Foundry 是流行的开源平台即服务 (PaaS) 的完整本地版本,允许开发人员在他们的 Mac 或 PC 上运行功能齐全的云。使用 Micro Cloud Foundry,开发人员可以在本地构建端到端的云应用程序,无需配置中间件,同时保留部署位置的选择,并能够在无需更改一行代码的情况下扩展他们的应用程序。

    要了解有关 Micro Cloud Foundry 的更多信息,请查看这三篇博客文章,它们介绍了将 Micro Cloud Foundry 引入Spring 开发人员Grails 开发人员,以及介绍SpringSource Tool Suite 中对 Micro CloudFoundry 的支持

    	</li> 
    	
    	<LI>Thomas Risberg blogged today about <A HREF="http://blog.springsource.com/2011/08/30/using-postgres-on-cloud-foundry/">using PostgreSQL on Cloud Foundry</a>. The recently announced  PostgreSQL support   makes CloudFoundry the natural place to deploy your enterprise applications: between MySQL and PostgreSQL there's very likely few speed or feature…

在 Cloud Foundry 上使用 Postgres

工程 | Thomas Risberg | 2011年8月30日 | ...

当 VMware 推出的新型开源平台即服务 (PaaS) 产品Cloud Foundry在今年早些时候发布时,它包含一个由 MySQL 提供支持的关系数据库服务,以及 MongoDB 和 Redis 的 NoSQL 选项。开放 PaaS 的承诺之一是提供选择,无论是在您可以使用何种语言和框架进行开发,还是在可用的数据库服务方面。我们现在可以使用PostgreSQL的新关系数据库服务了。这很棒,因为我们现在可以在两个最流行的开源关系数据库之间进行选择。PostgreSQL 是一款非常……

RabbitMQ:在 Cloud Foundry 上启用 Grails 全文搜索

工程 | Peter Ledbrook | 2011年8月29日 | ...

在我的关于 Grails 和 Cloud Foundry 的第二篇博客中,我介绍了Grails Twitter 示例的一个变体,该示例可以托管在CloudFoundry.com上。当时我提到,使用 Searchable 插件进行全文搜索会将您限制为单个应用程序实例,因为搜索索引对于每个实例都是唯一的。换句话说,根据您的浏览器路由到的应用程序实例,您可能会很容易获得不同的搜索结果。

我还说,解决此问题的一个选项是同步实例之间的搜索索引。但这听起来并不……

Android 应用中的整洁代码

工程 | Roy Clarkson | 2011年8月26日 | ...

假设您某天早上醒来,心想:“嘿,我今天要构建一个 Android 应用。”首先,这是一个不错的选择!截至 6 月底,每天有 500,000 台 Android 设备被激活,甚至超过了 iPhone。这意味着您的应用拥有庞大的潜在受众。此外,Android 是使用 Java 构建的。这看起来似乎没什么大不了的,但我使用Objective-CiOS 平台上工作了几年,虽然我现在对它非常熟悉,但与我在 Android 上的体验相比,iOS SDK的学习曲线要陡峭得多。当我第一次开始使用Android SDK时,Android 感觉更容易上手。也就是说,与您过去构建的任何其他 Java 应用程序相比,Android 有一些明显的区别,我将在第一部分介绍其中一些。

所以随着时间的推移,您已经完成了第一个应用,并将其提交到Android Market。祝贺您,因为您的朋友们都正在下载您的应用并对其进行推文。现在是开始第二个应用的时候了。您花费了几天时间,突然意识到您开始重用第一个应用中的代码,这本身并不是一件坏事。代码重用可能很有价值。但是您注意到有很多样板代码经常重复,这会分散您对业务逻辑的注意力。幸运的是,有一些方法可以改进这一点。

在这篇博客文章中,我将概述 Android 和应用程序生命周期,并讨论框架强加的一些限制。我还将回顾一些技术和第三方项目,这些技术和项目可以帮助您清理 Android 代码,并专注于您希望通过应用实现的目标。

Android 概述

让我们简要概述一下 Android 的工作原理。Android 应用程序 (应用) 是使用 Java 构建的,并编译成类文件。然后将类文件编译成 Dalvik 可执行 (DEX) 格式,以便它们可以在 Android 使用的 Dalvik 虚拟机上运行。转换为 DEX 格式后,类文件将被压缩到 Android 包 (APK) 中,以便分发到设备。由于使用了 DEX 格式,因此 Dalvik VM 不是真正的 Java 虚拟机,因为它不运行 Java 字节码。此外,Dalvik VM 基于 Apache Harmony 项目的一个子集作为其核心类库。这意味着您习惯使用的许多 Java SE 类和方法都可用,但肯定不是全部。我发现API 参考(位于Android 开发者网站上)是回顾这些差异的宝贵资源。

默认情况下,每个 Android 应用程序都会由 Android 操作系统分配一个唯一的 Linux 用户 ID。当由系统启动时,应用程序在其自己的 Linux 进程中运行,在其自己的虚拟机 (VM) 中。系统根据需要管理此进程的启动和关闭。您可以猜到,这意味着每个应用程序都与其他正在运行的应用程序隔离运行。安装后,应用可以请求权限以访问硬件功能或与其他应用程序交互。用户可以选择向应用授予这些权限或不安装它。应用需要或请求的权限在每个应用的 Android 清单文件中定义。这是一个 XML 文件,列出了应用的所有组件以及这些组件的任何设置。四种类型的应用程序组件是活动服务内容提供程序广播接收器。出于本文的目的,我将重点关注活动。

活动基本上代表 Android 应用程序的单个屏幕。例如,Twitter 应用可能有一个登录屏幕、一个包含推文列表的屏幕和一个用于创作新推文的屏幕。这些屏幕中的每一个都代表应用程序中的不同活动。作为开发人员,您永远不会自己实例化活动对象。活动是通过发送称为Intent的异步消息来激活的,如下例所示。


startActivity(new Intent(context, HomeActivity.class));

当调用startActivity(Intent intent)时,系统会创建新实例或重用现有实例,以便向用户显示该活动。重要的是,系统控制应用程序和每个活动的启动和停止以及创建和销毁。如果您想与该过程进行交互,则应用程序和活动类提供用于不同生命周期事件的方法,您可以在子类中覆盖这些方法。

依赖注入

Spring Android项目最近发布了其第四个里程碑版本1.0.0.M4。在这个版本中,我们继续改进了对Android的RestTemplateSpring Social的支持,简化了进行RESTful HTTP请求和访问受OAuth保护的REST API的过程。虽然我们相信这些对于Android开发来说是很有价值的补充,但一些开发者提出了关于Spring Android中依赖注入支持的可能性问题,因为您可能知道,Spring框架已经提供了一个流行的控制反转(IOC)容器,用于在企业Java应用程序中启用依赖注入。在Spring Android规划的早期阶段,依赖注入支持被确定为项目中可能包含的候选功能。那时,还不清楚这种支持将包含什么内容,以及如何实现。因此,我开始研究和调查在Android中执行依赖注入的可用方法以及局限性。

那么,什么是依赖注入?如果您问两个不同的开发者,您可能会得到两个不同的答案。您可能会听到关于IOC、XML文件、注解或其他一些实现细节。实际上,依赖注入只是一种通过向对象提供其工作所需的内容来减少耦合的技术,而不是让对象访问其环境。这听起来很简单,您可能会认为您已经可以使用类构造函数和setter方法实现这一点,这完全正确。但是,回想一下上面概述部分的内容,Android系统驱动应用程序生命周期,因此我们执行此操作的**方式**是有限的。

Android的方式

无需使用任何第三方库,将依赖项传递给Activity就相当容易。如前所述,系统创建应用程序实例。因此,通过扩展application,您可以有效地创建一个单例依赖项实例,然后任何应用程序中的活动都可以访问该实例。


public class MainApplication extends Application  {

    private MyService service;

    @Override
    public void onCreate() {
        super.onCreate();
        service = new MyServiceImpl();
    }

    public MyService getMyService() {
        return this.service;
    }
}

Activity类有一个名为getApplication()的方法,它返回拥有该Activity的应用程序对象的引用。我们只需将其转换为MainApplication,就可以访问MyService的getter方法。当然,Activity现在必须“知道”应用程序,这似乎是一个缺点。但请记住,Activity已经知道其应用程序。该方法是内置的。


public class MainActivity extends Activity  {

    private MyService service;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        MainApplication app = (MainApplication…

功能概览

发行版 | Chloe Jackson | 2011年8月26日 | ...

Spring使您能够专注于业务问题,而不是连接组件和系统的管道。从核心框架到基础设施和数据服务,浏览Spring的关键功能,并了解如何构建、运行和管理您的现代Java应用程序。入门很容易,您现在就可以开始。

 

Spring框架功能

Spring框架帮助您更快地构建Java应用程序,因为它允许您专注于业务问题,而不是连接组件和系统的管道代码。Spring的功能包括:

现代Web

完全支持现代应用程序,包括REST、HTML 5、会话和AJAX。
查看更多...

数据访问

支持传统的RDBMS以及新的NoSQL解决方案、map-reduce框架和基于云的数据服务。
查看更多...

集成

用于分布式应用程序、基于异步消息的应用程序和批处理应用程序的企业编排和适配器。
查看更多...

移动

对移动客户端平台(包括Android和iPhone)的Web支持。
查看更多...

社交

与Facebook、Twitter、LinkedIn和其他主要的社交网络集成。
查看更多...

安全

所有层级的授权控制以及与数十个提供商的认证集成。
查看更多...

云就绪

Spring应用程序在所有流行的云平台上都受支持,例如Cloud Foundry、Google App Engine和Amazon EC2。
查看更多...

   

Spring主要优势


模块化

普通的Java对象使您的代码简洁、简单和模块化。

 

生产力

超过70%的开发者报告说,使用Spring可以提高生产力并缩短部署时间。

 

可移植性

应用程序可在Tomcat、所有Java EE服务器以及云平台上运行。

 

可测试性

清晰表达的依赖关系使单元和集成测试更容易。

 

Spring入门

新闻 | Chloe Jackson | 2011年8月26日 | ...

Spring提供了一个功能强大且灵活的技术集合,用于改进您的企业Java应用程序开发,数百万开发者都在使用它。您可以轻松地使用我们的免费开发工具Spring Tool Suite或按照众多教程中的一个开始使用。如果您有任何具体问题,可以在社区论坛中提问,在我们的广泛代码示例中查找解决方案,或搜索优秀的Spring文档

 

获取您需要的一切

Spring Tool Suite™为构建Spring驱动的企业应用程序提供了最佳的基于Eclipse的开发环境。STS提供了开发最新企业Java和基于Spring的技术所需的所有工具。

开始教程

如果您是Spring新手或需要了解新功能,我们的教程会简单地解释关键概念,并提供完成特定任务的分步说明。通过屏幕截图、示例代码和专家提示,您可以按照自己的节奏掌握Spring。
前往教程...

 

获取代码示例

Spring代码示例为您提供可直接在应用程序中使用的精确代码。示例由Spring专家编写,确保您的应用程序遵循最佳实践。
前往示例...

 

阅读文档

Spring文档以精确的细节涵盖了平台的各个方面。如果您需要查找有关API的特定信息或了解Spring的内部工作原理,请搜索我们全面而深入的技术出版物。
前往文档...

提问(论坛)

有问题?Spring论坛是一个充满活力的资源,每天都有成千上万的用户提问和解答问题。
前往论坛...

 

参加课程(培训)

SpringSource University是您开发人员关注教育的终极资源。您可以在课堂或在线直播中参加我们的开源课程,以便更好地了解Spring框架、Apache Tomcat和其他开源项目,并获得Spring认证。
前往培训...

 

视频指导

SpringSourceDev YouTube频道提供了Spring演示文稿和技术屏幕录像的完整视频存档。这些由Spring专家录制的视频为您提供所有技能水平的开发指南和技巧。
前往频道...

 

Spring AMQP 1.0 GA发布

发行版 | Mark Fisher | 2011年8月25日 | ...

我们很高兴地宣布Spring AMQP 1.0 GA(适用于Java)已发布!您可以在Spring AMQP主页上找到所有资源(文档、示例、源代码、论坛、问题跟踪器等)的链接。工件可在SpringSource Maven存储库以及Maven Central中找到。

该项目在其里程碑和候选发布阶段非常受欢迎,我们感谢社区中为我们提供宝贵反馈并提出JIRA问题的各位。我们期待着社区的进一步发展……

Spring Social 1.0.0.RC3发布

版本发布 | Craig Walls | 2011年8月25日 | ...

尊敬的 Spring 社区成员:

我们很高兴地宣布发布Spring Social的1.0.0.RC3版本,包括Spring Social Facebook和Spring Social Twitter的1.0.0.RC3版本。Spring Social允许您将Java应用程序连接到软件即服务(SaaS)提供商,例如Facebook和Twitter。

此版本包含自1.0.0.RC2以来报告的错误修复,以及一些改进:

  • ConnectInterceptor实现现在可以向授权URL添加参数。
  • Twitter TimelineOperations.updateStatus()改进
    • 现在可以上传照片以及状态更新。
    • TimelineOperations.updateStatus()现在返回新发布推文的Tweet对象。
    • 现在可以将状态发布为对现有状态的回复。
  • 示例应用程序集已更新,包括两个新示例:一个演示基于弹出窗口的连接流程,另一个演示在Facebook Canvas应用程序中使用Spring Social。

查看更改日志以获取有关此版本中新增内容的更多信息(核心 | Facebook | Twitter

要获取软件,请下载发行版(核心 | Facebook | Twitter),或者只需将maven构件添加到您的项目中。要查看其运行情况,请完成快速入门并启动展示应用程序(已更新至1.0.0.RC3)。您可以参考参考手册中的信息。

Spring Social需要Spring Framework 3.0.5或更高版本才能运行。我们建议新应用程序使用Spring 3.1以利用核心框架中的最新进展。请参阅参考手册以了解依赖项的完整说明。

我们预计这是 Spring Social 1.0.0 的最后一个候选版本,并预计很快就会发布 Spring Social 1.0.0 正式版。因此,我们强烈建议您试用此候选版本并在论坛中提供反馈,如果您有任何建议或发现任何错误,请在问题跟踪器中提交。

希望您喜欢使用 Spring Social!

Spring 3.0.6 现已发布

发行版 | Adam Fitzgerald | 2011年8月24日 | ...

由于大家的目光都集中在 Spring 3.1 的新功能上,重要的是要记住 3.0.x 分支仍在更新。上周悄然发布了Spring 3.0.6。此版本解决了 50 多个小问题,并包含大约十几个小的改进。请务必阅读更改日志以了解所有详细信息。

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

不要忘记 Spring 用户可以在社区论坛中提问,也可以在JIRA中报告问题。

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

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

了解更多

获取支持

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

了解更多

即将举行的活动

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

查看全部