Spring 仍处于企业 Java 的前沿:大数据、NoSQL 和云可移植性
又到了 JavaOne 的时候,今年您会找到关于 Spring 如何与 Java SE 协同工作来解决 大数据、NoSQL 和企业 集成 挑战的会议。我们一直努力确保 Spring 通过及时支持新兴趋势和技术,保持在企业 Java 的前沿。数据显示,我们的用户对此表示赞赏。Evans Data 的一份最新报告("Spring Source 使用情况研究",Evans Data Corporation,2011年9月)显示:
- Spring 是资深 Java 开发人员的首选框架。超过三分之二的 Java 开发人员正在使用 Spring 或计划使用 Spring。
- Spring 的使用持续增长。超过一半的现有 Spring 用户预计将增加或显著增加他们对 Spring 的使用。
- Spring 正在带来成果。70% 的 Spring 用户表示使用 Spring 至少提高了 50% 的生产力,73% 的用户表示完成项目的时间至少减少了 50%。
- Spring 用户走在企业 Java 的前沿。Spring 用户对云的准备更充分,Spring 采用者更有可能已经将应用程序部署到云端。
Spring 一直提供部署灵活性。早期,这意味着可以选择应用程序服务器,但现在这扩展到可以选择云平台,包括我们自己的 Cloud Foundry。Spring 一直提供强大的数据访问支持。早期,这意味着可以选择访问关系数据库的方法,而今天这扩展到一系列大数据和 NoSQL 存储、数据处理和内存数据网格功能。Spring 一直重视开发人员生产力,并为编写服务器端 Web 应用程序提供了第一流的支持。今天,这扩展到满足基于 HATEOAS 的 REST API 的现代需求。
这些是当今企业内部真实而紧迫的问题。云无处不在,现在大数据也已牢牢地进入企业项目雷达,带来了许多新的需求:
- 大数据:需要存储和分析千兆字节、万亿字节或拍字节的非结构化或半结构化数据。
- 快速数据:对大量数据进行低延迟交互的需求日益增加,这通常由当今的移动和社交应用驱动。
- 灵活数据:需要根据每个应用程序最合适的模型调整数据访问。
- 云交付:对作为服务访问数据的需求日益增长,可在您选择的云上进行配置。
最新的 《哈佛商业评论》调查 显示,85% 的组织已经计划或正在进行大数据项目。应用程序开发人员需要提供能够与这个新世界集成并可以在任何地方(无论是在本地还是在云端)部署的强大、高质量的解决方案。NoSQL 和 NewSQL 也被用于解决各种用例,包括:
- 管理大型非事务性数据流(日志、点击流)
- 欺诈检测
- 时间线(类似于 Twitter)
- 同步离线和在线数据
- 在线游戏
- 文档、目录和内容管理
- 归档——存储大量持续的在线可访问数据流
- 嵌入式系统(设备中的小型数据库)
请参阅这篇 High Scalability 博客文章 了解更多详情。
451 Research 的最新调查数据 强调了数据格局的变化。一种尺寸不再适合所有情况。

企业开发人员现在可以通过 Spring 和熟悉的 Spring 编程模型开始利用这些新技术。Spring 提供:
- 通过 Spring Data 对 Apache Hadoop 和 HBase 的支持,以及 Spring Batch 和 Spring Integration 进行大数据处理
- 通过 Spring Data GemFire 支持内存数据网格
- 通过 Spring Data Redis 支持 NoSQL 键值存储
- 通过 Spring Data MongoDB 支持 NoSQL 文档存储
- 通过 Spring Data Neo4j 支持 NoSQL 图形数据库
- 通过 SQLFire 支持 NewSQL 数据库
- 当然还有传统的 MySQL、Postgres、Oracle 和 DB2 等关系型数据库,它们 仍然有其用武之地,并且可以通过 Spring JPA 和 Spring JDBC 扩展进行访问,并通过 Spring Data REST 提供访问
围绕 NoSQL 蓬勃发展的开源社区,与 Spring 结合,使当今为下一代数据存储和数据处理开发更具生产力。我们不为所有持久化存储提供单一的 Java API;考虑到它们之间的根本差异,这是不现实的。但我们确实提供了一个基于模板概念和(如果可用)存储库的通用且熟悉的编程模型。有关更多详细信息,请参阅 Tobias Trelle 最近的 InfoQ 文章。
总而言之,JavaOne 2012 必将是一个充满精彩 Java 技术讲座、主题演讲和会议的充实一周,其中包括我们自己的 大数据、NoSQL 和 集成 计划的报道。想要亲身体验这些技术的开发人员也不容错过2012年10月15日至18日在华盛顿特区举行的 SpringOne 2GX。我们有一个涵盖现代企业应用程序开发所有方面的充实技术议程。
spring-test-mvc 第二个里程碑版本发布
Spring MVC Test 项目的第二个里程碑版本现已通过 SpringSource Artifactory 仓库 http://repo.springsource.org/milestone 发布。
新内容很多。在服务器端,我们增加了对 Servlet Filter 的支持、对 Spring Security 的基本支持、定义默认请求属性和期望以便在所有执行的请求中重用的能力,以及更多内容。在客户端,我们极大地扩展了请求匹配和响应创建的选项。
有关更多详细信息和评论,请阅读 这篇博文。
本周 Spring 动态 - 2012 年 9 月 25 日
欢迎回到“本周 Spring 动态”系列!本周有太多精彩内容值得关注。您敢相信我们已经开始展望十月了吗?
是时候考虑万圣节您要装扮成谁了!
十月即将迎来 SpringOne2GX,这是 Spring 开发者的顶级盛会。快来看看今年盛会的 最终日程安排,包括 演讲者和会议安排!SpringOne 2GX 是您向 Spring、Groovy/Grails、Tomcat 和 Cloud 技术领域的发展领导者及知名作者学习的绝佳机会。
- Spring Security 负责人 Rob Winch 介绍 Spring Security 的网络研讨会视频 现已发布。
- Oleg Zhurakousky 开启了 Spring Integration 2.2 的发布进程,他 撰写博客介绍了 2.2 中新增的 MongoDB 功能。
- Gary Russell 宣布了 Spring Integration 2.2 的发布候选版 1。
This is intended to be the final release before GA, so users are encouraged to give feedback on this release. </LI> - Costin Leau 宣布了 Spring Shell 的 1.0.0.RC1 版本发布,该项目是对 Spring Roo 中使用的 shell 的提取,并通过 Spring 编程模型提供。
</LI> - Roger Hughes 又回来了,这次他 探讨了 Spring 3.1 的缓存和配置选项,重点关注 `CacheManager` 的设置。
- vFabric 博客对 Spring Insight 背后的 “split-agent”架构进行了有趣的探讨,该架构可以将收集阶段与分析阶段分离。
- Krishna Prasad 发表了一篇关于 获取 Spring Web Flow 应用程序测试覆盖率信息的精彩博文。
- Mattias Severson 发表了一篇关于在 基于 Spring MVC 的 RESTful 应用程序中处理错误的精彩博文。
- Ronillo Ang 整理了一个非常简短的演示文稿,介绍了 Spring MVC 应用程序的基本组成部分。
- JavaCode Geeks 博客发表了一篇关于使用 Spring 框架 编写持久化层的精彩博文。
- L'Artech 博客发表了一篇很酷的文章,介绍如何在 Spring MVC 应用程序(系列第三部分)中创建登录表单。
Spring Integration 2.2 的新特性(第二部分 - 事务同步)
介绍
这是系列博客文章的第二部分,重点介绍 Spring Integration 2.2 在最近发布 发布候选版 1 后提供的一些新功能。第一部分讨论了 MongoDB 适配器。Spring Integration 2.2 引入了对将非事务性资源与事务同步的增强支持。
背景
多年来,Spring 一直为 同步资源与事务提供一流的支持。在许多情况下,此功能用于同步由多个事务管理器管理的事务,以实现 Dave Syer 在其精彩的 JavaWorld 文章中描述的“尽力而为 1PC”模式。例如,通常用于同步 JMS 提交与 JDBC 提交。
Spring Integration 通过在 poller 上定义 `<transactional/>` 元素,长期以来一直支持此功能。本次发布将此功能向前推进了一步,允许将非事务性资源与事务同步。
例如,考虑一个<file:inbound-channel-adapter/>和一个集成应用程序,它在文件出现在目录时读取该文件,并更新数据库。这…
Spring Integration 2.2.RC1 的新功能 (第一部分 - MongoDb)
介绍
Spring Integration 2.2.RC1 已经发布,我们将在未来几天发布一系列博客,讨论其一些新功能。在这第一篇博客中,我们将讨论 MongoDb 入站和出站通道适配器。完整的示例集可在此处获取:https://github.com/SpringSource/spring-integration-samples/tree/master/basic/mongodbMongoDb 出站通道适配器
MongoDb 出站通道适配器允许您将消息负载写入 MongoDb 文档存储。您可以在下面看到 MongoDb 通道适配器最简单的配置
<int-mongodb:outbound-channel-adapter id="deafultAdapter"/>
它将使用 MongoDbFactory 的默认实例(默认 bean 名称为 'mongoDbFactory')进行初始化,否则您可以通过 mongodb-factory 属性提供其引用。
现在您可以运行 MongoDbOutboundAdapterDemo。运行后打开终端窗口并启动 MongoDb CLI
$> mongo
进入 MongoDb CLI 后,输入查询
> db.data.find({})
您应该会看到我们刚刚创建的 3 个文档条目
{ "_id" : ObjectId("505ff83d03649ed6881d…Spring Integration Release Candidate 1 发布!
Spring Shell 1.0.0.RC1 发布
本周 Spring 动态 - 2012 年 9 月 18 日
欢迎回到“本周 Spring 动态”系列!本周我在伊利诺伊州布卢明顿-诺尔曼,与 StateFarm 的开发人员交流 Spring 项目:MVC、REST、Mobile 和 Android。这里的开发人员简直是代码忍者。听他们一整天的内部交流,可以说大开眼界。不要错过一年一度的 Spring、Groovy 和 Grails 盛会,将在华盛顿特区举行:SpringOne2GX。如果您还没注册,现在正是时候!哦,别忘了,如果您在美国,今天还是 全国芝士汉堡日!祝您用餐愉快!
<LI> Chris Beams has announced the availability of <a href ="http://www.springsource.org/node/3654">Spring Framework 3.2 M2</a>, which features many new features including improved <CODE>TestContext</CODE> support, Spring MVC improvements, asynchronous <CODE>@Controllers</CODE>, and lots of bug-fixes and improvements. </LI>
<LI> This month's SpringSource webinar is coming fast - <a href ="http://www.springsource.org/node/3653"> Spring Security with Rob Winch</a>. Be sure to register now! </LI>
<li> Martin Lippert has announced the availability of the <a href="http://www.springsource.org…Spring Data Neo4j 2.1.0 发布候选版本 4 发布
在 Spring Data GA 发布列车即将到来之际,我们希望收集一些关于 Spring Data - Neo4j 中的修复和更新的反馈。因此我们发布了候选版本 4。
以下是此发布候选版本中更改的快速概览,比我们预期的要长得多,但仍然非常有用。
2.1.0.RC4 版本中的更改 (2012-08-19)
- DATAGRAPH-296 更新到 Neo4j 1.8.RC1、spatial、cypher-dsl 和 java-rest-binding 的稳定版本,并适应 API 更改
- DATAGRAPH-285 添加保存和删除的应用程序事件
- DATAGRAPH-263, DATAGRAPH-212, DATAGRAPH-272, DATAGRAPH-147 重构派生查询创建,增加了对多个索引字段和所有查询关键字的支持
- DATAGRAPH-294 针对数字索引值的派生查找器方法
- DATAGRAPH-293 按图 ID 查找对象
- DATAGRAPH-275 TypeRepresentationStrategyFactory 在空图上的非正常回退
- DATAGRAPH-246 允许实体作为参数传递给派生查找器
- DATAGRAPH-281 增加了对 Cypher 中枚举和日期作为参数的支持
只需将您的依赖版本指向 2.1.0.RC4。目前,由于人工工作和时间限制,在线资源尚未更新。这些资源将在 2.1.0.RELEASE 版本中提供。