Spring for Apache Hadoop 2.3 Release Candidate 1 发布

版本发布 | Thomas Risberg | 2015年10月15日 | ...

我们很高兴地宣布 Spring for Apache Hadoop 2.3 RC1 的发布。

此版本最重要的增强功能包括

  • 更新构建以使用 Spring Framework 4.2.2 [SHDP-509]
  • 更新构建以使用 Spring Integration 4.2.0 [SHDP-520]
  • 在 StoreObjectSupport 中添加 FlushTimeoutTrigger [SHDP-526]
  • 用新的“spring-statemachine”项目替换内部状态机实现 [SHDP-530]

有关详细信息,请参阅发布变更日志

我们继续在 Spring IO 里程碑仓库中提供特定版本构件及其各自的传递依赖项

  • 2.3.0.RC1 (默认 - Apache Hadoop 稳定版 2.7.1)
  • 2.3.0.RC1-hadoop26 (Apache Hadoop 2.6.0)
  • 2.3.0.RC1-phd30 (Pivotal HD 3.0)
  • 2.3.0.RC1-phd21 (Pivotal HD 2.1)
  • 2.3.0.RC1-cdh5 (Cloudera CDH 5.4)
  • 2.3.0.RC1-hdp23 (Hortonworks HDP 2.3)

Spring on GlassFish 4.1.1 and WildFly 10 / Undertow 1.3

新闻 | Juergen Hoeller | 2015 年 10 月 14 日 | ...

尽管我在上周的博文中指出了 Java EE 7 平台采用方面没有重大新闻(因为仍没有 WebSphere Classic、WebLogic、JBoss EAP 甚至支持完整 EE 7 的 TomEE),但现有的两个开源 EE 7 平台服务器——GlassFish 和 WildFly——在此期间取得了一些不错的进展。

  • 现在有了一个 **GlassFish 4.1.1** 版本,其中包含许多子项目更新——包括用于 WebSocket 支持的 Tyrus。
  • WildFly 团队正从一个主要版本冲向下一个版本,**WildFly 10 GA** 即将到来。底层的 **Undertow** Web 服务器在几天前已达到 **1.3 GA**。

React.js 与 Spring Data REST:第 4 部分 - 事件

工程 | Greg L. Turnquist | 2015 年 10 月 13 日 | ...
要查看此代码的更新,请访问我们的 React.js 与 Spring Data REST 教程

上一节中,您引入了条件更新,以避免在与其他用户编辑相同数据时发生冲突。您还学习了如何通过乐观锁定在后端对数据进行版本控制。如果您发现有人编辑了相同的记录,您就会收到提示,以便您可以刷新页面并获取更新。

这很好。但您知道什么更好吗?当其他人更新资源时,UI 会动态响应。

在本节中,您将学习如何使用 Spring Data REST 内置的事件系统来检测后端的变化,并通过 Spring 的 WebSocket 支持将更新发布给所有用户。然后,您就可以在数据更新时动态调整客户端。

您可以随时从该存储库获取代码并进行跟进。本节基于上一节的应用程序,并添加了额外的内容。

为项目添加 Spring WebSocket 支持

在开始之前,您需要在项目的 pom.xml 文件中添加一个依赖项

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-websocket</artifactId>
</dependency>

这将引入 Spring Boot 的 WebSocket 启动器。

使用 Spring 配置 WebSockets

Spring 提供了强大的 WebSocket 支持。需要认识到的是,WebSocket 是一种非常底层的协议。它除了提供在客户端和服务器之间传输数据的方法外,几乎不做其他事情。建议使用子协议(本节使用 STOMP)来实际编码数据和路由。

以下代码用于在服务器端配置 WebSocket 支持

@Component
@EnableWebSocketMessageBroker
public class WebSocketConfiguration extends AbstractWebSocketMessageBrokerConfigurer {
static final String MESSAGE_PREFIX = "/topic";

@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
	registry.addEndpoint("/payroll").withSockJS();
}

@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
	registry.enableSimpleBroker(MESSAGE_PREFIX);
	registry.setApplicationDestinationPrefixes("/app");
}

}

  • @EnableWebSocketMessageBroker 启用 WebSocket 支持。
  • AbstractWebSocketMessageBrokerConfigurer 提供了一个方便的基类来配置基本功能。
  • MESSAGE_PREFIX 是您将添加到每个消息路由前面的前缀。
  • registerStompEndpoints() 用于配置后端上的端点,以便客户端和服务器进行链接(/payroll)。
  • configureMessageBroker() 用于配置用于在中继服务器和客户端之间的消息的代理。

有了这个配置,现在就可以利用 Spring Data REST 事件并通过 WebSocket 发布它们了。

订阅 Spring Data REST 事件

Spring Data REST 会根据存储库上发生的动作生成多个应用程序事件。以下代码显示了如何订阅其中一些事件

@Component
@RepositoryEventHandler(Employee.class)
public class EventHandler {
private final SimpMessagingTemplate websocket;

private final EntityLinks entityLinks;

@Autowired
public EventHandler(SimpMessagingTemplate websocket, 
			EntityLinks entityLinks) {
	this.websocket = websocket;
	this…

Spring Statemachine 1.0.0 发布

发布 | Janne Valkealahti | 2015 年 10 月 13 日 | ...

我们很高兴地宣布 Spring Statemachine 1.0.0 正式发布。我想首先感谢所有为实现这一目标做出贡献的人。您可以从 Maven CentralSpring Repository 获取工件。

我们在此次首次发布中实际完成的内容

  • 易于使用的扁平单层状态机,适用于简单的用例。
  • 分层状态机结构,简化复杂状态配置。
  • 状态机区域,提供更复杂的状态配置。
  • 使用触发器、转换、守卫和动作。
  • 类型安全的配置适配器。
  • 采用建造者模式,便于在 Spring 应用程序上下文之外进行实例化。
  • 常见用例的示例。
  • 基于 Zookeeper 的分布式状态机。
  • 状态机事件监听器。
  • Spring IOC 集成,将 bean 与状态机关联。

本周 Spring 动态 - 2015 年 10 月 13 日

工程 | Josh Long | 2015 年 10 月 13 日 | ...

欢迎收看又一期的《本周 Spring 动态》!本周我将在波兰克拉科夫参加 JDD,然后前往俄罗斯圣彼得堡参加 Joker 会议

我们有很多内容要介绍,所以让我们开始吧!

STS 中的 Spring Boot Dashboard - 第 1 部分:本地 Boot 应用

工程 | Martin Lippert | 2015 年 10 月 8 日 | ...

Spring 社区的各位,欢迎!

这是介绍 STS 中新 Spring Boot Dashboard 的三篇博客文章中的第一篇。您将了解如何在 IDE 中使用 Spring Boot Dashboard,了解它提供的各种功能,以及它在开发基于 Spring Boot 的应用程序时如何为您提供帮助。由于 Spring Boot Dashboard 已在最近发布的 STS 3.7.1 中引入,您需要该版本才能关注此博客系列。如果您尚未安装,请前往https://springframework.org.cn/tools/ 并获取您的副本。

介绍

Spring Boot 现在已经是一种广泛采用的技术,可以简化您在企业中实现 Spring 应用程序的流程。它特别适用于创建基于微服务的应用程序,彻底改变了我们对小型、易于配置的 Spring 应用程序的看法。结合 Spring Cloud,它为真正云原生的应用程序打开了大门,这些应用程序可能由许多微服务组成。

这种架构思维的巨大转变也需要在我们的 IDE 中得到反映。我们现有的许多传统 Java IDE 最初并非仅在云原生时代之前,而是在云时代之前,并在一定程度上是在分布式编程时代之前发明的。Spring Tool Suite 及其基础 Eclipse IDE 也是如此。是时候将这些 IDE 推向云原生时代了。这就是 Spring Boot Dashboard 的起点。它的重点是帮助您处理可能数量众多的基于 Spring Boot 的微服务应用程序,并使您在 IDE 中处理这些项目时作为开发人员的生活更加轻松。

Spring Boot Dashboard

从小处着手并逐步推进,Spring Boot Dashboard 作为 STS/Eclipse 中的一个附加视图。您可以按主工具栏中的 Spring Boot 按钮来打开它。它会打开一个简单的视图,该视图与您的工作区项目同步,显示您工作区中是 Spring Boot 项目的项目。

Boot Dashboard 的主要目的是让您快速访问您每天、每小时,甚至更频繁地进行的操作。您可以通过在 Boot Dashboard 中选择您的 Boot 应用,然后按工具栏中的“运行”或“调试”操作来快速启动它们(以运行或调试模式)。没有比这更快启动您的 Boot 应用的方式了。而且,由于您可能会更改代码并希望重新启动应用程序,因此如果应用程序已在运行,该操作将允许您重新启动 Boot 应用。更改您的代码,按 Boot Dashboard 中的“运行”按钮,您的 Boot 应用就会被停止并为您重新启动。同样,这是一个简单的单键操作。

这些操作(以及更多操作)在 Boot Dashboard 中的一个优点是它们可以同时作用于单个或多个项目。如果您想同时启动或停止一组 Boot 应用,例如启动一组协作服务,只需在 Dashboard 中全选它们,然后按“运行”即可。就是这样。

一旦您在项目中使用 Spring Boot 1.3,您就会注意到 Boot Dashboard 中会出现额外的亮点。一旦您的 Boot 应用开始启动,Boot Dashboard 就会可视化应用程序正在启动——并且它会区分其启动阶段(虚拟机正在运行,但应用程序仍在初始化)和它真正运行并准备使用。进度图标表示应用程序仍在启动,一旦应用程序完全初始化并运行,就会显示绿色的“向上”图标。您无需观察日志输出来等待“服务器已启动”消息或其他类似消息的出现。Boot Dashboard 的图标会告知您。

一旦应用程序运行起来,它所监听的端口就会显示在 Boot Dashboard 中——为了方便您。您不再需要扫描日志输出来查找应用程序正在使用的端口。Dashboard 会自动显示该信息。而且,如果您想跳转到正在运行的 Boot 应用的控制台输出,也有一个快速操作。

通常,您不再需要知道正在运行的应用程序的端口——因为您不必自己打开应用程序的浏览器选项卡。双击 Boot Dashboard 中的项目,它将为您打开一个新的浏览器选项卡——直接导航到应用程序的默认 URL。

默认情况下,这会打开一个 Eclipse/STS 内部浏览器视图。如果您更喜欢使用外部浏览器,可以在首选项中进行设置。

如果此默认 URL 不是您希望默认访问的 URL,您可以对其进行自定义。打开属性视图,在 Boot Dashboard 中选择项目,然后输入您偏好的默认 URL 扩展。双击将打开应用程序的默认 URL + 您自定义的扩展。

如果您不确定您的应用程序定义了哪些 URL 扩展,您可以选择属性视图中的“请求映射”选项卡。所有正在运行的应用程序的请求映射都列在那里——您自己定义的映射在列表顶部,来自库的映射在列表底部。双击 URL 扩展会在浏览器中打开该扩展,双击代码指针会在编辑器中打开项目对应的文件并跳转到定义请求映射的行。

您工作区中的微服务项目越多,您同时处理所有这些项目的可能性就越小。您想专注于一个子集。例如,在 Eclipse/STS 中,您可能已经创建了一个工作集。Boot Dashboard 允许您为项目添加任意数量的标签(同样,在属性视图中)。然后可以使用这些标签(在 Boot Dashboard 顶部的过滤器框中)来减少显示在 Boot Dashboard 中的项目数量。

展望

本系列的第二部分将介绍 Boot Dashboard 的 Cloud Foundry 集成,如何在 Boot Dashboard 中将微服务部署到 CF,以及如何在与部署在 CF 上的应用程序结合使用本地 Boot 应用程序。

Spring XD 1.3 M1 发布

发布 | Mark Pollack | 2015 年 10 月 8 日 | ...

我谨代表 Spring XD 团队,非常高兴地宣布 Spring XD 1.3 的第一个里程碑版本发布。

此版本包含 错误修复和一些增强功能

  • Hadoop 发行版版本更新至 Apache Hadoop 2.7.1 和 Hortonworks Data Platform 2.3。Pivotal Hadoop 2.1, 3.0 和 Cloudera Hadoop 5.4
  • Spark 1.3.1 支持
  • Cassandra Sink
  • Header Enricher Processor
  • Flo Designer UI 和 Admin UI 的错误修复
  • Gpfdist sink 现在支持更新操作和完整的控制文件选项
  • 更新至 Spring Integration 4.2,在启用监控时提供性能改进。
  • 升级至 Spring Data Gosling Release train

本周 Spring 动态 - 2015 年 10 月 6 日

工程 | Josh Long | 2015 年 10 月 7 日 | ...

欢迎收看又一期的《本周 Spring 动态》!和往常一样,我们有很多内容要介绍,所以让我们开始吧!

Spring REST Docs 1.0.0.RELEASE

版本发布 | Andy Wilkinson | 2015 年 10 月 7 日 | ...

我很高兴地宣布,Spring REST Docs 1.0.0.RELEASE 已发布。可从 Maven Central 和我们的 发布仓库 获取。

Spring REST Docs 是什么?

Spring REST Docs 帮助您记录 RESTful 服务。它结合了使用 Asciidoctor 编写的手写文档和使用 Spring MVC Test 生成的自动生成代码片段。这种方法使您摆脱了 Swagger 等工具施加的限制。它帮助您生成准确、简洁且结构良好的文档。然后,这些文档可以让您的用户以最少的…获得他们所需的信息。

Spring Initializr 的演进

工程 | Brian Clozel | 2015年10月06日 | ...

我们很高兴今天在https://start.spring.io 发布新版本的 Spring Initializr!

最初是一个小型的内部 Web 应用程序,用于生成 Spring Boot 项目,它已经发展到比我们预期的要大。您现在可以在 Web、您最喜欢的 IDE(Eclipse STS 和 IntelliJ IDEA)甚至使用您的命令行工具(尝试 curl https://start.spring.io)来使用 Spring Initializr。

与此同时,Spring 产品组合正在不断壮大,我们收到了来自 Spring 社区的大量宝贵反馈。因为没有任何东西能比实际数据更胜一筹,所以我们在夏天之前改进了该服务,将其指标导出到集中的 redis 实例。这使我们能够在一个可靠的数据集中保留长时间活动的统计数据(并且无论我们在 Pivotal Web Services 上部署多少实例)…

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

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

了解更多

获得支持

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

了解更多

即将举行的活动

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

查看所有