Spring Boot 1.0.0.RC4 现已可用
Spring Boot 1.0.0 (RC4) 已发布,可在 repo.spring.io 仓库中获取。此版本修复了 RC3 中的一些 bug,并更新了大量第三方依赖项。新功能包括
- 在 Maven 和 Gradle 构建中支持 Spring Loaded 在开发期间重新加载类。
- spring-data-rest 的 starter pom(及示例)。
- 大量新文档(都在源代码中,但照常发布在 http://projects.spring.io/spring-boot)。
- “gradle run” 的主类自动检测。
- 支持在启动时重新启动和递增 Spring Batch 作业。
如果没有更多…
SpringOne2GX 2013 重播:RabbitMQ 是新王者
录制于加州圣克拉拉的 SpringOne2GX 2013。
讲师:Alvaro Videla, Jan Machacek
Jan 将展示如何使用 RabbitMQ 连接不同平台上的组件。在几页介绍主要概念的幻灯片之后,剩余的演讲将是实时编码。编码将从展示连接到 RabbitMQ 以发送和接收消息的 Spring Integration 代码开始——首先是 byte[] 值的来回传输。然后,Jan 将通过用 C++ 本地代码替换 RPC 服务器组件来展示 RabbitMQ 的真正强大之处:我们将编写图像处理组件。为了让事情变得更好——更快——我们将使用 CUDA 进行图像处理。如果你想了解如何在应用程序的核心中使用 RabbitMQ,特别是如果你的应用程序需要将完全不同平台上的代码连接在一起,并且如果它执行大量的数字运算或图像处理,那就来参加 Jan 的演讲和演示吧。你不需要深入了解 Spring Integration、AMQP 或 OpenCV 等;你所需要的只是你内心的极客精神。
在以下位置了解更多关于 RabbitMQ 的信息
http://www.gopivotal.com/products/pivotal-rabbitmq
和
https://rabbitmq.cn
!{iframe width="560" height="315" src="//www.youtube.com/embed/kA8rPIDa388" frameborder="0" allowfullscreen}{/iframe}
SpringOne2GX 2013 重播:Spring Integration 内部原理
录制于加州圣克拉拉的 SpringOne2GX 2013
讲师:Gary Russell 对流程内消息路由的全面回顾 - 包括
- replyChannel 和 errorChannel header 的确切使用方式和时间
- 这些 header 在错误流中如何以及何时适用
- 同步和异步处理(使用任务执行器和轮询器)之间的区别
- SpEL 的使用(用于消息方法映射以及某些“动态”配置属性)
- 类型转换(通过 SpEL、数据类型通道等)隐式创建的通道
- 链式工作原理 消息到达组件时如何映射到方法
- gateway 方法如何映射到消息(以及对我们正在考虑的一些增强功能的初步了解)
- 选项…
Spring Framework 4 中的 Groovy Bean 配置
本文旨在向 Java 开发者介绍 Groovy Bean Builder,作为 Java @Configuration 和 XML 配置的强大替代方案或补充。Spring Framework 4.0 版本将 Grails Bean Builder 移植到核心 Spring Framework,提供了用于配置 Spring 应用程序的 Groovy DSL。Groovy 和 Grails 开发者无疑对此种配置 Spring 应用的方式非常熟悉,我相信其他人已经开始想“这多酷啊?”
如果你不是 Groovy 专家,请不用担心。正如许多 Java 程序员使用另一种流行的 Groovy DSL(Gradle)来构建应用程序一样,你只需要了解一些基本语法即可入门。示例代码可在 github 获取…
Spring Data REST 入门
紧随 Spring Data 的 Codd GA 版本发布 之后, Spring Data REST 的新入门指南《使用 REST 访问数据》也已发布。它向你展示了如何构建一个具有 JPA 后端和 RESTful、超媒体驱动前端的应用程序。
Spring Data REST 完成了构建强大 RESTful 前端以及编写后端 JPA 查询的所有繁重工作。最棒的是,本指南利用了 Spring Boot,让你能够使用 Spring 团队的最新杰出成果。
干杯!
SpringOne2GX 2013 重播:在云中使用 Spring、Neo4J、Mongo 和 Redis 进行癌症研究
录制于加州圣克拉拉的 SpringOne2GX 2013
讲师:Smitha Gudur, Manoj Joshi, Redbasin Networks
癌症/生命科学药物研究模型在关系、关系异构性和实体相互依赖方面非常丰富。大多数实体元数据是动态且不可预测的,这使得将此类模型纳入传统的关联型数据环境变得困难。Redbasin Networks 采用混合 NoSQL 策略,支持复合和丰富的文档元数据,这些元数据广泛互连。癌症和生命科学数据嵌套层级过多。如果你正在构建复杂的工程和/或科学应用程序,并且需要了解如何合并来自许多不同数据集的数据并将其映射到直观有效的图数据库模型,你将会发现这很有用。我们将通过代码示例展示如何使用 Spring、Neo4J 和 Mongo 工程化复杂元数据,为药物研究人员提供有用的药物见解,并为技术人员构建复杂的生命科学应用程序提供平台。
!{iframe width="560" height="315" src="//www.youtube.com/embed/YWMjBk7hdUk" frameborder="0" allowfullscreen}{/iframe}
SpringOne2GX 2013 重播:Spring Data 社区闪电演讲
录制于加州圣克拉拉的 SpringOne2GX 2013
讲师:Peter Bell (MongoDB Master), Costin Leau (Elasticsearch), Christoph Strobl (Solr) 和 Michael Nitschinger (Couchbase)
Spring Data 始于一个由许多独立模块(针对每个支持的数据存储)组成的伞状项目。虽然其中一些数据存储模块(例如 JPA 和 MongoDB 模块)由 Pivotal 工程师维护,但最近出现了许多社区实现。它们建立在 Spring Data Core 模块的基础之上,并为其他存储公开了 Spring Data 编程模型。本次会议将邀请 Solr (Christoph Strobl)、Elasticsearch (Costin Leau)、Couchbase (Michael Nitschinger) 和 MongoDB (Peter Bell) 的社区模块维护者和贡献者,他们将介绍即将发布的版本的最新和最出色功能,并展示他们如何使用 Spring Data Core 的 API 构建模块。Spring Data 始于一个由许多独立模块(针对每个支持的数据存储)组成的伞状项目。虽然其中一些数据存储模块(例如 JPA 和 MongoDB 模块)由 Pivotal 工程师维护,但最近出现了许多社区实现。它们建立在 Spring Data Core 模块的基础之上,并为其他存储公开了 Spring Data 编程模型。本次会议将邀请 Solr (Christoph Strobl)、Elasticsearch (Costin Leau)、Couchbase (Michael Nitschinger) 和 MongoDB (Peter Bell) 的社区模块维护者和贡献者,他们将介绍即将发布的版本的最新和最出色功能,并展示他们如何使用 Spring Data Core 的 API 构建模块。
!{iframe width="560" height="315" src="//www.youtube.com/embed/5Wq6FtENEaQ" frameborder="0" allowfullscreen}{/iframe}
本周 Spring 动态 - 2014 年 2 月 25 日
欢迎回到新一期的《本周 Spring 动态》。
昨天我在佐治亚州亚特兰大参加了精彩的 DevNexus 会议,与开发者们交流了 Spring 广阔世界中的最新进展以及如何使用 Spring 开发 REST API。今天我在加拿大蒙特利尔参加ConFoo 会议。本周我将向开发者们介绍 Spring 对 NoSQL 和大数据的丰富支持,以及如何使用 Spring 构建 REST API。
像往常一样,内容很多,让我们开始吧!
- Spring Batch 项目负责人 Michael Minella 宣布Spring Batch 3.0 M3 现已可用。我最喜欢的新功能是什么?它实现了 JSR 352(批量处理 JSR)的所有必需部分!恭喜 Michael 和团队,这是一个巨大的里程碑!
- Spring Mobile 项目负责人 Roy Clarkson 已宣布 Spring Mobile 1.1.1 现已可用。
- Spring Security 项目负责人 Rob Winch 宣布Spring Security 3.2.1 和 3.1.5 现已可用
- Rob 还宣布Spring LDAP 2.0.1 现已可用。
- Christoph Strobl 也宣布 Spring Data Redis 1.2.0 现已可用!
- 加入 Juergen Hoeller 和 Spring 团队,在 3 月 25 日了解 Java 8 和 Spring Framework 4.0。
- 不要错过 Mattias Arthursson 在3 月 18 日介绍 Spring LDAP 2.0.0 的演讲。
- Tomcat 爱好者应该观看 Apache Committer Stuart Williams 和 Daniel Mikusa 的网络研讨会重播:Apache Tomcat 8 简介。
- SpringOne2GX 2013 的 Spring Data 社区闪电演讲重播现已上线
- SpringOne2GX 2013 演讲《SpringOne2GX 2013 重播:在云中使用 Spring、Neo4J、Mongo 和 Redis 进行癌症研究》的重播
- Spring Data 项目负责人 Oliver Gierke 已宣布Spring Data Codd 现已可用并正式发布 (GA)!快来了解最新最棒的内容吧!
- Axon CQRS 框架的最新版本 2.1 现已可用。
- Pivotal 首席执行官 Paul Maritz 发表了一篇关于围绕 Cloud Foundry 成立基金会的精彩文章。
- El Reg 也发表了一篇关于最近Cloud Foundry 基金会成立的精彩文章,题为《Cloud Foundry 在 EMC、IBM、HP、Rackspace、SAP、VMware 的“示爱”中备受瞩目》。
- Zoltan 博客发表了一篇关于将双因素认证与 Spring Security 结合使用的精彩文章。
- Biju Kunjummen 在 Java Code Geek's 博客上撰写了一篇关于他使用 Spring Boot 和 Spring Integration 的初步尝试的精彩文章。
- Xavier Padró' 发布了他上周介绍Spring 和 Thymeleaf 文章的后续。新文章探讨了如何构建表单以及如何将 Ajax 与 Thymeleaf 结合使用。
- 说到 Spring Boot,OpenCredo 博客也有一篇关于他们初步接触 Spring Boot 的精彩文章!快来看看吧。
- JavaLobby 发表了一篇关于在 Spring MVC 中使用自定义
ViewResolver
的精彩文章。
Spring Batch 3.0 里程碑 3 发布
今天我们很高兴宣布 Spring Batch 3.0 的最终里程碑版本发布(下载)。此版本展示了我们对 JSR-352 的支持,并且目前支持其所有必需功能。我们还为现有的 Spring Batch 用户添加了许多新功能。Spring Batch 是一个轻量级、全面的框架,用于开发健壮的批量应用程序。
里程碑 3 中的功能
作为 Spring Batch 3.0.0 版本的最终里程碑,此版本的所有主要功能均已完成。此版本的主要功能包括
- 支持 JSR-352
- 将 Spring Batch Integration 提升到 Spring Batch
- 升级以支持 Spring 4 和 Java 8
- 其他修复和改进
JSR-352 支持
Spring 在我们对该规范的贡献中投入了大量时间和资源。通过 JCP 与其他行业专家的合作,JSR-352 验证了 Spring Batch 在过去六年里在无数生产环境中实现并经过实战检验的批量处理模式是构建企业级关键任务批量应用程序的最佳方法。
3.0.0.M3 是首个符合 JSR-352 的 Spring Batch 版本,它通过了所有 152 个 SE TCK 测试。Spring Batch 对 JSR-352 的实现允许用户使用熟悉的 Spring Batch 组件,同时保持与 Java 标准的兼容。Spring Batch 支持通过基于 JSR-352 的 XML 配置作业,使用 JSR 中定义的注入方法(Spring 的依赖注入、batch.xml 和内联配置)注入针对 javax.batch.* 接口开发的批量 artifact,以及 JSR-352 中提供的所有可扩展性选项(通过线程进行分割和分区)。
我们实现的目标很简单:遵循 JSR 的规则,同时不破坏 Spring Batch 已定义的规则。换句话说,在不影响现有 Spring Batch 用户的情况下实现规范。我们通过提供两种实现批量作业的“路径”来做到这一点。第一种是传统的 Spring Batch 方式。使用 Spring Batch XML 或 Spring 的 Java 配置,针对 Spring Batch 接口进行开发等。这在 3.0 版本中不会改变。第二种“路径”是 JSR 路径。这种开发方法使用 JSR-352 定义的 XML Schema 来配置作业,使用 JSR 的 JobOperator
来启动作业和管理元数据,开发人员根据 JSR 的 API 编写代码。需要注意的是,这是两条截然不同的路径。虽然使用 Spring Batch 组件适用于基于 JSR-352 的作业,但它们在这些上下文中的使用将由 JSR 的规则决定。一个例子是 JSR-352 中定义的上下文(StepContext
和 JobContext
)的注入。如果作业是使用传统 Spring Batch 方法配置并通过常规 Spring Batch 组件启动,这些上下文对于批量 artifact 是不可用的。然而,如果你通过 JSR-352 XML 配置作业并通过 JSR-352 JobOperator
启动,这些上下文将在适当的地方被注入。
需要指出的是,Spring Batch 不仅仅是实现了 JSR-352。它在许多方面都比该规范走得更远,例如
- 组件 - Spring Batch 提供了 17 种不同的
ItemReader
实现、16 种ItemWriter
实现,以及许多其他组件,这些组件在生产环境中经过了多年的测试。 - 可伸缩性 - JSR-352 仅为单个 JVM 提供扩展选项(通过线程进行分区和分割)。Spring Batch 提供多 JVM 可伸缩性选项,包括远程分区和远程分块。
- Spring 依赖注入 - 虽然 JSR-352 提供了一种“轻量级”的依赖注入形式,但它对批量 artifact 的构造存在一些限制(例如,必须使用无参构造函数)。Spring Batch 构建在 Spring 之上,并受益于 Spring Framework 的强大功能。
- 基于 Java 的配置 - 尽管 Spring 基于 XML 的配置选项广为人知,但 Spring,特别是 Spring Batch,提供了使用基于 Java 的配置的类型安全性来配置作业的选项。
- Hadoop/大数据集成 - Spring Batch 是在 Spring 生态系统中与 Hadoop 及其他大数据存储交互的基础工具。Spring for Apache Hadoop 提供了许多与批量处理相关的扩展,用于使用 Spring Batch 协调 Hadoop 集群上的工作。Spring XD 构建在 Spring Batch 之上,不仅提供执行能力,还提供类似于 Spring Batch Admin 的管理功能,适用于任何环境。
Spring 将继续参与 JSR-352 的演进,随着其进行维护性修订,并期待对 JCP 流程做出进一步贡献。
将 Spring Batch Integration 提升到 Spring Batch
Spring Batch Integration 几年来一直是 Spring Batch Admin 的一个鲜为人知的子项目。然而,考虑到该库提供的强大功能及其在企业开发中的实用性,我们决定将其从 Spring Batch Admin 伞状项目下移至 Spring Batch 伞状项目下。Spring Batch Integration 旨在提供连接批量处理和集成处理的有用组件,为启动和扩展批量应用程序提供了多种选项。功能包括
- 异步 ItemProcessor/ItemWriter - 在另一个线程上执行
ItemProcessor
逻辑,并将Future
返回给ItemWriter
。一旦Future
返回,结果就会被写入。 JobLaunchingMessageHandler
/JobLaunchingMessageGateway
- 提供通过通道接收的 Spring Messages 启动作业的能力。- 远程分块 - 提供通过主/从配置远程(跨多个 JVM)执行
ItemProcessor
逻辑的能力。 - 远程分区 - 提供通过主/从配置远程(跨多个 JVM 进行读/处理/写)执行完整分块的能力。
这些组件使得 Spring Batch 应用程序能够在许多企业中无缝集成和扩展。
升级以支持 Spring 4 和 Java 8
作为我们保持依赖项最新的努力的一部分,我们已更新 Spring Batch 及其各个模块以支持 Spring 4。由于这些更新,Spring 4 将是 Spring Batch 3.0.0.M3 所支持的最低 Spring 版本。这不仅带来了 Spring 4 中的众多新功能,还提供了立即在 Java 8 上运行的能力。
其他修复和改进
除了上述大型新功能外,我们还添加了一些较小的功能并持续修复 bug。我们新增的功能包括添加了 JobScope
和对 SQLite 的支持。
通往发布候选版的路线图
那么还剩下什么呢?随着我们接近发布候选版,仍有一些小工作需要完成。我们仍在仔细检查 Spring Batch 的依赖项,并希望尽可能多地进行升级。
结论
3.0.0.M3 标志着 Spring Batch 的一个关键里程碑。它允许开发人员测试基于 JSR-352 的功能,同时仍然可以依赖 Spring 和 Spring Batch 的基础。它还为框架带来了新功能。我们期待在论坛、社交媒体和线下活动中听到您的评论和反馈!