| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
欠债3649元
7年前发布

新的Vaadin Spring发布,增强了视图管理功能

   <p>Vaadin 是一个使用UI组件来构建Web应用的多语言框架,最近发布了 Vaadin Spring 项目的 1.1版本 。</p>    <p>在Vaadin的 Navigator 类和 View 接口方面,有两个新的特性:</p>    <ul>     <li>新的 SpringNavigator 类</li>     <li>新的 @SpringViewDisplay 注解</li>    </ul>    <p>SpringNavigator 类极大地“简化了视图的配置”, @SpringViewDisplay 注解能够用来“标记目标Vaadin组件,指定了我们的视图要实际展现的地方。”</p>    <p>另外,还有一些 缺陷修正 ,包括使用Vaadin Spring来序列化HTTP session。</p>    <p>如下的代码片段展示了如何使用 SpringNavigator 类和 @SpringViewDisplay 注解:</p>    <pre>  // MainUI.java  @SpringUI  @Theme("valo")  public class MainUI extends UI {      MainViewDisplay mainContent;      public MainUI(MainViewDisplay mainContent,SpringNavigator navigator) {          this.mainContent = mainContent;          navigator.setErrorView(ErrorView.class);          }      /// 其他的支撑代码...      }</pre>    <pre>  // MainViewDisplay.java  @SpringViewDisplay  public class MainViewDisplay extends Panel implements ViewDisplay {      public MainViewDisplay() {          setStyleName(ValoTheme.PANEL_BORDERLESS);          }      @Override      public void showView(View view) {          // 假设视图是组件,通常都会这样          setContent((Component)view);          }      }</pre>    <p>在GitHub上的完整项目包含了上述Java文件源码的 变更集合 ,阐述了用来实现导航和视图管理功能的更简洁的代码。</p>    <p>InfoQ与 Matti Tahvonen 进行了交流,他是Vaadin的产品市场主管,讨论了这次版本相关的情况。</p>    <p><strong>InfoQ:你目前在Vaadin的职责是什么呢?</strong></p>    <p>Tahvonen:我的官方职位是Vaadin框架和相关OS库(如Vaadin Spring)的产品市场主管,但是我的工作更像是针对开发者的宣传人员。我撰写版本发布博客、编写使用Vaadin与其他有趣Java技术进行集成的样例项目、发布技术文章、主办webinar、参加会议(参与演讲和作为展台工作人员)、帮助新用户和客户进行Vaadin开发并帮助我们的工程师以及其他人员进行技术营销工作。我对OSS非常有热情,非常荣幸我能够从事OS相关的工作,而我的同事会负责Vaadin相关的商业扩展。</p>    <p><strong>InfoQ:和其他的Java Web框架相比,Vaadin的与众不同之处是什么呢?</strong></p>    <p>Tahvonen:Vaadin对Web技术有着最强的抽象。使用Vaadin框架编写应用并不需要我们接触一行JS、HTML或CSS代码(如果你想这样做的话,也是可以的),我们也不需要理解浏览器的技巧或各种形式的HTTP通信技术(如基本HTTP、表单提交、AJAX、服务端推送、WebSocket等)。如果你想编写自定义扩展的话,才需要接触底层的Web编程技术,我们有很活跃的社区和 上百个add-on ,所以这种场景是很少见的。在最常见的情况下,我们只需使用简单的Java和基于组件的编程模型,这样能让开发更简单和高效。具有桌面UI(Swing、SWT、JavaFX)经验的开发人员或后端开发人员对于Vaadin会感到特别兴奋,不过也有PHP背景的人对Vaadin非常感兴趣。</p>    <p><strong>InfoQ:你对Vaadin和UI的看法是怎样的,它们该如何适应微服务模式呢?</strong></p>    <p>Tahvonen:最近这段时间以来,这是一个非常常见的问题。Vaadin对微服务适配得非常好,一般而言,应用中始终会有UI,至少会存在某种形式的UI。在UI方面,会有多种策略,最佳方案要取决于你的需求。如果你的服务中具有UI,或者使用Vaadin + (REST)服务来构建管理端UI,让这些服务供其他的应用消费,那么Vaadin非常适用于这种场景。另外,Java也是消费REST服务的理想工具(没有同源的限制),在创建mash-up应用的时候,会消费多个微服务的数据,所以在这种情况下,Vaadin也能运行良好。</p>    <p>最近,很多用户都提出了这个问题,我们决定针对这个话题编写一些内容和样例。我和我的同事 Alejandro 已经编写了 第一篇文章 。后续还有很多内容和样例要发布。</p>    <p><strong>InfoQ:关于Vaadin和/或Vaadin Spring,你们目前的规划是什么呢?</strong></p>    <p>Tahvonen:毫无疑问,Vaadin 8是接下来最重要的事情。在Vaadin中,当前的一些API起源非常早,那个时候还没有lambdas表达式,这些API甚至要早于泛型或JDK中特有的集合框架。Vaadin 8将会是一个巨大的进步,会让代码更加类型安全、易于编写,在CPU和内存使用方面会更加高效。对于Vaadin Spring来说,也会有更新的版本。</p>    <p>因为我们非常重视向后兼容性(大多数的Vaadin应用会长期维护),我们准备了一个兼容包,借助它能够非常容易地进行升级,你可以渐进式采用新的API。同时,Vaadin 7版本将会继续支持,因为我们的一些客户还不能迁移到Java 8上,有些甚至还要支持IE 8。</p>    <p>我们目前处于beta阶段,第一个beta版本在圣诞节假期前已经发布:</p>    <p><a href="/misc/goto?guid=4959734064652620867" rel="nofollow,noindex">https://vaadin.com/blog/-/blogs/vaadin-8-beta-is-out-we-need-your-help-</a></p>    <p>至于Vaadin Spring,我们计划为Spring Security提供一些辅助功能。大多数的Vaadin Spring用户都会同时使用Spring Security,通过一些更深入的集成,我们相信能够让客户的起步更简单一些。</p>    <p><strong>InfoQ:与原生的JavaScript框架相比,例如AngularJS或ReactJS,它的性能/响应性如何呢?</strong></p>    <p>Tahvonen:在着手评估Vaadin的时候,很多开发人员都会担心这个问题。我建议他们亲自尝试一下。如果session存储在服务器的内存中(通常如此),服务器的基本访问是很快的,除非服务器的位置在地球的另一端。我们可以看一下如今的Google搜索,每当键盘按下的时候,它都会访问服务器,但它依然非常流畅。</p>    <p>在与亚马逊的专家一起构建的一个样例中,我们使用了他们的地理负载均衡功能,成功玩了一个基于Vaadin的俄罗斯方块游戏,它运行在一个位于悉尼的EC2微实例上(我位于芬兰)。此时,它已经不是那么流畅了(相对于部署在同一个大洲的服务器来说),但是对于正常的业务应用来说,它能够运行地非常好。通过启用WebSocket,我们持续地开启通信通道(在Vaadin中,需要添加一项依赖并且要在 UI 类上添加 @Push 注解),这样能够进一步减少延迟。</p>    <p>除了服务器往返(roundtrip)所造成的延迟,人们还应关注浏览器渲染所造成的延迟,以及执行实际的业务逻辑或数据库查询所造成的延迟,这一点与使用Angular和React是相同的。不管是Vaadin还是客户端的UI框架,我都建议为长时间运行的查询展示一些进度指示器或对话框,不要让UI看起来像停滞了一样。</p>    <p> </p>    <p> </p>    <p>来自:http://www.infoq.com/cn/news/2017/01/vaadin-releases-vaadin-spring</p>    <p> </p>    
 本文由用户 欠债3649元 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1484018975608.html
Spring JEE框架