Spring Tool Suite 3.7.1 发布

发行版 | Martin Lippert | 2015年10月6日 | ...

尊敬的 Spring 社区:

我很高兴地宣布 Spring Tool Suite(我们基于 Eclipse 的工具)的 3.7.1 版本发布。

此版本的亮点包括:

  • 更新到 Eclipse Mars.1 (4.5.1),包括许多针对 JDT 和 m2e 的修复
  • 更新到 Pivotal tc Server 3.1.2
  • 对 Spring Boot YML 属性编辑器的各种改进
  • 对 Spring Boot 启动向导的改进
  • 对 Spring Boot Devtools 的新支持,包括能够将 Java 调试器附加到 CF 部署的应用程序。
  • 新的 Spring Boot 仪表盘,目前处于测试阶段,但这绝对是此版本的亮点

要下载发行版,请访问:

此处可以找到详细的新增和值得注意的内容:STS 3.7.1 新特性与改进

STS 3.7.2 计划于 2015 年 12 月发布。

尽情享受!

关于 Java EE 7 采用的简短更新

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

提醒:每当有人向您展示包含 Java EE 7 使用率列的调查结果时,尤其是在谈论生产使用率时,请仔细检查他们实际询问的内容。Hibernate 4.3 的使用是否算作 Java EE 7,仅仅因为它使用了 JPA 2.1(EE 7 级别但独立运行)?Tomcat 8 的使用是否算作 Java EE 7,仅仅因为它使用了 Servlet 3.1?当然,使用任何此类单个提供程序运行 Spring 应用程序是否算作 EE 7?

谨慎对待此类统计数据:它们通常不会询问“原生 Java EE 7 平台的使用情况”,但最终却被这样呈现。为什么可以安全地假设他们没有询问生产环境中完整的 Java EE 7 平台的使用情况?好吧,请记住我6 月份的博客文章,在 2015 年底仍然有效。与此同时,唯一真正的新消息是,自从 IBM 在 WebSphere 的 Liberty Profile 中发布了他们的 EE 7 支持以来就没有什么新消息了。总而言之,此类调查的受访者……

本周 Spring - 2015 年 9 月 29 日

工程 | Josh Long | 2015年9月30日 | ...

欢迎来到另一期《本周 Spring》!对于那些来自美国的读者,让我首先祝你们全国咖啡日快乐!像往常一样,我们有很多内容要介绍,所以让我们开始吧!

React.js 和 Spring Data REST:第 3 部分 - 条件操作

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

上一节中,您了解了如何启用 Spring Data REST 的超媒体控件,让 UI 通过分页导航,并根据页面大小的变化动态调整大小。您添加了创建和删除员工以及调整页面大小的功能。但是,如果没有考虑其他用户对您当前正在编辑的相同数据所做的更新,则没有任何解决方案是完整的。

您可以随意从该存储库中获取代码并继续学习。本节基于上一节的应用程序,并添加了一些额外内容。

是否使用 PUT 方法,这是一个问题

当您获取资源时,如果其他人更新了它,则存在它可能过时的风险。为了解决这个问题,Spring Data REST 集成了两项技术:资源版本控制和 ETags。

通过在后端对资源进行版本控制并在前端使用 ETags,可以有条件地执行 PUT 操作。换句话说,您可以检测资源是否已更改,并防止 PUT(或 PATCH)覆盖其他人的更新。让我们来看看。

版本控制 REST 资源

要支持资源的版本控制,请为需要此类保护的域对象定义一个版本属性。

src/main/java/com/greglturnquist/payroll/Employee.java
@Data
@Entity
public class Employee {
private @Id @GeneratedValue Long id;
private String firstName;
private String lastName;
private String description;

private @Version @JsonIgnore Long version;

private Employee() {}

public Employee(String firstName, String lastName, String description) {
	this.firstName = firstName;
	this.lastName = lastName;
	this.description = description;
}

}

  • **version** 字段使用 `javax.persistence.Version` 进行注释。它会导致每次插入和更新行时自动存储和更新值。

在获取单个资源(而不是集合资源)时,Spring Data REST 将自动添加一个带有此字段值的ETag 响应标头

获取单个资源及其标头

上一节中,您使用集合资源来收集数据并填充 UI 的 HTML 表格。使用 Spring Data REST 时,**_embedded** 数据集被视为数据的预览。虽然它对于浏览数据很有用,但要获取像 ETags 这样的标头,您需要分别获取每个资源。

在此版本中,`loadFromServer` 已更新为获取集合,然后使用 URI 来检索每个单个资源。

src/main/resources/static/app.jsx - 获取每个资源
loadFromServer: function (pageSize) {
    follow(client, root, [
        {rel: 'employees', params: {size: pageSize}}]
    ).then(employeeCollection => {
        return client({
            method: 'GET',
            path: employeeCollection.entity._links.profile.href,
            headers: {'Accept': 'application/schema+json'}
        }).then(schema => {
            this.schema = schema.entity;
            this.links = employeeCollection.entity._links;
            return employeeCollection;
        });
    }).then(employeeCollection => {
        return employeeCollection.entity._embedded.employees.map(employee =>
                client({
                    method: 'GET',
                    path: employee._links.self.href
                })
        );
    }).then(employeePromises => {
        return when.all(employeePromises);
    }).done(employees => {
        this.setState({
            employees: employees,
            attributes: Object.keys(this.schema.properties),
            pageSize: pageSize,
            links: this.links
        });
    });
},
  1. `follow()` 函数转到 **employees** 集合资源。
  2. `then(employeeCollection ⇒ …​)` 子句创建对获取 JSON Schema 数据的调用。这有一个子 then 子句,用于将元数据和导航链接存储在 `` 组件中。
    • 请注意,此嵌入式 promise 返回 employeeCollection。这样,就可以将集合传递到下一个调用,同时允许您沿途获取元数据。
  3. 第二个 `then(employeeCollection ⇒ …​)` 子句将员工集合转换为获取每个单个资源的 GET promise 数组。**这就是您需要为每个员工获取 ETag 标头的原因。**
  4. `then(employeePromises ⇒ …​)` 子句使用 `when.all()` 将 GET promise 数组合并到单个 promise 中,在所有 GET promise 都已解析时解析。
  5. `loadFromServer` 使用 `done(employees ⇒ …​)` 结束,其中 UI 状态使用此数据集合进行更新。

此链也在其他地方实现。例如,`onNavigate()`(用于跳转到不同页面)已更新为获取单个资源。由于它与上面显示的内容基本相同,因此在本节中已将其省略。

更新现有资源

在本节中,您将添加一个 `UpdateDialog` React 组件来编辑现有员工记录。

src/main/resources/static/app.jsx - UpdateDialog 组件
var UpdateDialog = React.createClass({
handleSubmit: function (e) {
    e.preventDefault();
    var updatedEmployee = {};
    this.props.attributes.forEach(attribute => {
        updatedEmployee[attribute] = React.findDOMNode(this.refs[attribute]).value.trim…

查看新的“使用 Vaadin 创建 CRUD UI”指南

工程 | Greg L. Turnquist | 2015年9月28日 | ...

尊敬的 Spring 社区:

今天,我们发布了一个新的指南:使用 Vaadin 创建 CRUD UI

本指南由 Vaadin 团队编写,展示了如何很好地构建一个利用 Spring Data 的 UI,而无需编写一行 JavaScript 或 HTML 代码。

Vaadin 真棒

  • 带有它自己的 Spring Boot 启动器
  • 与构造函数注入配合良好
  • 使插入持久性解决方案(如 Spring Data)变得非常简单
  • 配备了大量的插件,可以发展成真正的应用程序

查看这个新发布的指南,并玩得开心!

作为 SpringOne 2GX 的后续工作,我们已经确定了一些需要编写的指南。云原生技术正在席卷开发社区,人们正在寻求更多解决方案。我们的工作不应该是架设和堆叠服务器或构建基础设施。相反,我们应该专注于流畅且简单的解决方案。编写 **云原生** 代码……

本周 Spring - 2015 年 9 月 22 日

工程 | Josh Long | 2015年9月22日 | ...

欢迎来到另一期《本周 Spring》!本周,在令人难以置信的 SpringOne2GX 2015 之后,说实话,我有点筋疲力尽了!:D 但是,Spring 仍在继续,本周我在阿姆斯特丹与我们的朋友 Martin Deinum一起帮助一大批开发者使用 Spring Boot、Spring Cloud 和 Cloud Foundry 开启云原生之旅。

Spring Integration 1.1 GA版Java DSL现已可用

工程 | Artem Bilan | 2015年9月22日 | ...

尊敬的Spring社区成员!

我代表Spring Integration团队欣喜地宣布,Spring Integration Java DSL的1.1 GA版本现已可在发行版仓库Maven中央仓库获取。

Gradle用户请使用以下依赖项:

'org.springframework.integration:spring-integration-java-dsl:1.1.0.RELEASE'

Maven用户请使用以下依赖项:

<dependency>
     <groupId>org.springframework.integration</groupId>
     <artifactId>spring-integration-java-dsl</artifactId>
     <version>1.1.0.RELEASE</version>
</dependency>

首先,非常感谢上周参加我SpringOne 2GX 2015大会演讲的所有人……

Spring for Apache Hadoop 2.3里程碑版本M3发布

发行版 | Thomas Risberg | 2015年9月22日 | ...

我们很高兴地宣布Spring for Apache Hadoop 2.3 M3里程碑版本的发布。

此版本最重要的增强功能:

  • 更新构建以使用Spring Framework 4.2.1、Boot 1.3.0.M5、Batch 3.0.5 [SHDP-509]
  • 将注解配置移动到单独的子项目中,以减少spring-data-hadoop-boot的依赖项 [SHDP-525]
  • 为Spark Tasklet添加其他属性 [SHDP-397]
  • 升级构建以使用Spark 1.5.0 [SHDP-521]

查看发行版变更日志了解详情。

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

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

使用Vaadin Spring 1.0构建单页Web应用程序

工程 | Stéphane Nicoll | 2015年9月17日 | ...

这篇文章是社区成员Matti Tahvonen (@MattiTahvonen)的客座文章,他曾在Vaadin Ltd担任开发者推广员,该公司最初开发了Vaadin框架,并为其提供商业服务和扩展。

Vaadin的Spring集成库自5月份以来一直处于测试阶段,并且已被多个生产应用程序使用。今天,我们自豪地宣布测试标记已删除,稳定的1.0.0版本已发布。

Vaadin是一个基于组件的Web UI框架,您的应用程序状态和逻辑位于Java的内存中……

获取Spring通讯

通过Spring通讯保持联系

订阅

领先一步

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

了解更多

获得支持

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

了解更多

即将举行的活动

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

查看全部