Spring Data MongoDB 1.0.0 M4 发布

新闻 | Oliver Drotbohm | 2011年09月02日 | ...

亲爱的Spring社区,

很高兴地宣布 Spring Data MongoDB 1.0.0 M4 正式发布。以下是新增的最重要功能:

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

此外,我们还进行了大量的错误修复和改进,主要围绕映射子系统和性能。有关已修复问题的详细列表,请参阅 更改日志

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

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

本周 Spring 动态:2011 年 8 月 30 日

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

欢迎来到新一期的《本周 Spring 动态》。本周内容很多,话不多说,我们直接开始。特别说明:如果您正在阳光明媚的拉斯维加斯参加 VMworld 2011,欢迎光临 Cloud Application Platform 展位与我们打个招呼。

  1. 对于 CloudFoundry 来说,这真是令人激动的一周!本周推出了可供免费下载的 Micro Cloud Foundry,这是一款“即插即用的 PaaS”。Micro Cloud Foundry 是这款广受欢迎的开源平台即服务 (PaaS) 的完整本地版本,允许开发人员在自己的 Mac 或 PC 上运行功能齐全的云。通过使用 Micro Cloud Foundry,开发人员可以在本地构建端到端的云应用程序,而无需配置中间件的麻烦,同时保留部署位置的选择权,并在不改变任何代码的情况下扩展应用程序的能力。

    要了解更多关于 Micro Cloud Foundry 的信息,请查看这三篇博文:面向 Spring 开发人员Grails 开发人员的 Micro Cloud Foundry 介绍,以及 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 选项。Open PaaS 的承诺之一是提供语言和框架的选择,以及可用的数据库服务。现在,我们有了新的基于 PostgreSQL 的关系数据库服务。这很好,因为我们现在可以在两个最受欢迎的开源关系数据库之间进行选择了。PostgreSQL 是一个非常……

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

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

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

我还说过,解决这个问题的其中一个方法是跨实例同步搜索索引。但这听起来不像是…

Android 应用程序中的干净代码

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

假设你有一天早上醒来,想着:“嘿,我今天要构建一个 Android 应用。”首先,这是个好选择!截至六月底,每天有 500,000 台 Android 设备在 激活,甚至超过了 iPhone。这意味着你的应用拥有庞大的潜在受众。此外,Android 是用 Java 构建的。这可能看起来没什么大不了,但我已经在 Objective-CiOS 平台上工作了几年,虽然我现在对此很满意,但与我在 Android 上获得的体验相比,iOS SDK 的学习曲线更陡峭。当我开始使用 Android SDK 时,Android 感觉更容易上手。尽管如此,与你过去构建的任何其他 Java 应用程序相比,它确实存在一些明显的差异,我将在第一部分介绍其中一些。

再往前推移,您完成了第一个应用,并将其提交到了 Android Market。恭喜您,您的朋友们都在下载您的应用并在 Twitter 上讨论。现在该开始制作您的第二个应用了。您花了几天时间,突然意识到您开始重用第一个应用的代码,这本身并不是坏事。代码重用很有价值。但您会注意到有很多样板代码经常重复出现,这会分散您对业务逻辑的注意力。幸运的是,有一些方法可以改进这一点。

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

Android 概览

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

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

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


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

当调用startActivity(Intent intent) 时,系统会创建一个新实例或重用现有实例以向用户显示活动。关键点在于,系统控制着应用程序和每个活动的启动、停止、创建和销毁。如果您想与此过程交互,那么应用程序和活动类会提供不同生命周期事件的方法,您可以在子类中覆盖它们。

依赖注入

Spring Android 项目最近达到了其 第四个里程碑版本。通过这个版本,我们持续改进了 RestTemplateSpring Social 对 Android 的支持,这简化了发出 RESTful HTTP 请求和访问由 OAuth 保护的 REST API 的过程。虽然我们认为这些是对 Android 开发有价值的补充,但一些开发者询问了 Spring Android 中对依赖注入支持的可能性,因为你可能知道,Spring Framework 已经提供了一个流行的控制反转(IOC)容器,用于在企业 Java 应用程序中实现依赖注入。在 Spring Android 的早期规划阶段,依赖注入支持被确定为该项目可能包含的内容。那时,尚不清楚支持将包含哪些内容以及如何实现。因此,我开始研究和调查在 Android 中执行依赖注入的可能方法和局限性。

那么,什么是依赖注入呢?如果您问两个不同的开发人员,您可能会得到两个不同的答案。您可能会听到 IOC、XML 文件、注解或其他一些实现细节。实际上,依赖注入只是一种通过将对象所需的东西直接交给它,而不是让对象主动去环境中获取,来减少耦合的技术。这听起来很简单,您可能会想,您可以通过类构造函数和 setter 方法来实现这一点,这是完全正确的。但是,请回想一下上面概述的部分,Android 系统驱动着应用程序的生命周期,所以我们做到这一点方式是有限的。

Android 的方式

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


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() 的方法,它返回一个对拥有该活动的应用程序对象的引用。我们只需将其强制转换为 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年08月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 对象(POJO)使您的代码简洁、简单且模块化。

 

生产力

超过 70% 的开发人员报告使用 Spring 提高了生产力并缩短了部署时间。

 

可移植性

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

 

可测试性

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

 

开始使用 Spring

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

Spring 提供了一套极其强大且灵活的技术集合,可用于改进您的企业 Java 应用程序开发,已有数百万开发者在使用。通过使用我们免费的开发工具 Spring Tool Suite,或遵循众多 教程 中的一个,即可轻松上手。如果您有具体问题,可以在 社区论坛上提问,在我们丰富的 代码示例 中寻找解决方案,或搜索 Spring 卓越的 文档

 

获取所需的一切

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

开始一个教程

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

 

获取代码示例

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

 

阅读文档

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

提问(论坛)

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

 

参加课程(培训)

SpringSource University 是您开发人员教育的终极来源。您可以参加我们的公开课,在教室环境中或在线直播,以更好地理解 Spring Framework、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 应用程序连接到 Facebook 和 Twitter 等软件即服务 (SaaS) 提供商。

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

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

有关此版本新内容的更多信息,请参阅更改日志 (核心 | Facebook | Twitter)。

要获取该软件,请下载发布分发版(Core | 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 GA 版本。因此,我们敦促您试用此候选版本,并在 论坛中提供您的反馈,或者,如果您有任何建议或发现任何错误,请在 问题跟踪器中报告。

希望您在使用 Spring Social 的过程中愉快!

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

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

了解更多

获得支持

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

了解更多

即将举行的活动

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

查看所有