Vaadin 发布 Polyglot 框架第 8 版

  • Michael Redlich
  • 大愚若智

2017 年 3 月 28 日

话题:JavaDevOps语言 & 开发架构

第 7 版发布 4 年后,Vaadin近日发布了第 8 版 Polyglot 框架,该框架可用于通过 UI 组件构建 Web 应用,此版本在包含下列 21 项改进

  • 类型安全(Typesafe)Java API:
    • 有关 Vaadin 的改进:
      • 组件
      • 验证器
      • Grid
      • 异常消息
    • 新增的ItemCaptionGenerator
    • 类型安全 Lambda 表达式
  • Default 的改进:
    • Null 值
    • 有序布局(Ordered layout)
  • 性能改进:
    • 降低内存中数据集的开销
    • 降低大规模数据集的 CPU 需求
  • 面向未来趋势的改进:
    • 取消了对老版本 Java 和 Servlet 规范的支持
    • 取消了对遗留浏览器的支持

范例 – 第 7 和第 8 版的差异

下列 Grid 包含的类型安全 Lambda 表达式演示了相对与第 7 版,第 8 版 Vaadin 所实现的简化:

第 7 版:

Grid grid = new Grid();
grid.setContainerDataSource(
    new BeanItemContainer(persons));
grid.removeAllColumns();
grid.addColumn("firstName");
grid.getColumn("firstName")
    .setHeaderCaption("First Name");
grid.addColumn("lastName");

第 8 版:

Grid grid = new Grid();
grid.setItems(persons);
grid.addColumn(Person::getFirstName)
    .setCaption("First Name");
grid.addColumn(Person::getLastName)
    .setCaption("Last Name");

请注意第 8 版的容器中取消了数据包装(Wrapping)。Vaadin 的Container接口也已从 API 中移除。

Vaadin 还更新了第 8 版中使用 Vaadin 创建 CRUD UI的范例(位于Spring Guides中)。

上手

下列命令使用Maven发起了一个应用程序构建:

mvn -B archetype:generate -DarchetypeGroupId=com.vaadin
-DarchetypeArtifactId=vaadin-archetype-application -DarchetypeVersion=8.0.4
-DgroupId=org.test -DartifactId=vaadin-app -Dversion=1.0-SNAPSHOT
&& cd vaadin-app && mvn package jetty:run

该命令可创建一个简单的单模块范例应用(通过-DarchetypeArtifactId指定),创建了一个子文件夹(通过-DartifactID指定),将目录更改至该子目录,启动了一个Jetty实例,并运行应用程序产生如下结果:

若要创建更复杂的多模块范例应用,可直接替换-DarchetypeArtifactId中的vaadin-archtype-application-example值。

在 Vaadin 8 的发布说明中,Vaadin 产品营销经理Matti Tahvonen介绍了他们的后续短期目标:

虽然 Vaadin 8.0.0 包含了很多不错的改进,但这些只是后续进一步完善的基础。通过取消对老版本 JDK 和已停止维护的 Internet Explorer 版本的支持,我们将能更快速地为大家提供更多新功能。在计划于四月发布的下一个小版本中,我们将提供大家期待已久的层次结构,以及 Grid 组件的拖拽和组件支持。

当然我们同时也会继续通过新版修复各种 Bug,因此如果你遇到“.0 bugs”问题,请通过GitHub反馈给我们。

相关资源

阅读英文原文Vaadin Releases Version 8 of Their Polyglot Framework

JavaDevOps语言 & 开发架构