文章目录

  • Vaadin是什么?
    • Vaadin与JavaScript区别
    • Vaadin与Java以及GWT的关系
    • 总结
  • Vaadin 初貌
    • Vaadin提供的组件
  • Vaadin 开发概述
  • 创建Vaadin项目
  • 开发参考

Vaadin是什么?

  • Vaadin是一个web应用程式开发框架。基于这个框架,开发者可以使用Java开发高质量的用户界面。
  • Vaadin由位于芬兰的 IT Mill公司开发。 其前身是 IT Mill 公司由2000年起开始研发的 Millstone用户界面类库。
  • Vaadin提供了一系列的用户界面组件用来创建自己的组件。特点主要包含:易用、可重用、可扩展和满足大型企业应用需求。

Vaadin与JavaScript区别

  • 不同于Javascript,Vaadin是一个web应用程式开发框架。基于这个框架,开发者可以使用Java开发高质量的用户界面。
  • 不同于Javascript开发库和基于浏览器插件的解决方案,Vaadin提供了完整的技术栈,包括健壮的服务端编程模型,以及基于GWT和HTML5的服务端开发工具。
    Vaadin基于Apache 2.0协议发布,开源免费,但也提供了收费的服务。

Vaadin与Java以及GWT的关系

Vaadin是Java语言的框架,使用Java语言开发前端页面。说到这个,就不得不提一下GWT框架,其实Java开发前端的框架的始祖。GWT全称Google Web Toolkit,从名字可以看出,这个由谷歌推出的一个使用Java语言进行前端开发的框架,基于这个框架,使用Java语言就可以包揽前后端的开发。
GWT出现的时间很早,要追溯到2006年,在那个逐渐由C/S转向B/S开发的时机上, Java的AWT(Abstract Window Toolkit),Swing和SWT(Standard Widget Toolkit,Eclipse就是使用这个开发)等界面开发技术逐渐被抛弃, Google适时推出的GWT框架迎合了很多Java开发人员的需求和转型。突然转向BS开发,Web技术不会怎么办?救星来了, 就是GWT。所以GWT曾经一度被广大的Java开发人员所拥埠。
虽然可以避免深入学习Web技术,但是GWT的开发存在着一些不足和缺点。以笔者的亲身经历来看,不足包括:页面不够美观、开发耗费大量的资源(本身Eclipse就耗资源,加上GWT的消耗,在那个年代的机器配置,编译一次,的确需要喝杯水再来)、开发的速度慢、不直观。基于这些缺点,就有很多后继的补锅者,对GWT进行继承、改善和发扬,包括:

  • Vaadin, 对性能和界面进行优化
  • GXT, 著名的前端框架Ext JS提供商Sencha提供的基于GWT的框架, 前端组件的页面效果和Ext JS很类似。
  • vue-gwt, 将GWT与时下流行的VUE框架进行结合

总结

一句话总结: Vaadin最大的特点是使用Java后端语言编写前端页面的一个框架。同时逐渐Vaadin也提供了HTML的前端组件,可以通过npm的前端包管理工具导入使用。
Vaadin最大的好处就是对于偏重后端的Java开发人员来说,可以不需要太多的前端知识,就可以使用Java代码呈现美观的前端页面效果。

Vaadin 初貌

Vaadin的官方地址是: https://vaadin.com/, 包括Vaadin的Java框架在内,提供的产品有:

  • Vaadin 框架
  • Java语言或HTML语言的界面组件
  • Designer, 设计工具(需要收费),使用这个工具可以像Viusal的编程工具系列,在开发工具中拖动组件进行开发。
  • Charts, 交互式的图表开发库(收费)
    Vaadin 框架实现基本的Java代码转换前端页面的功能, 基于框架,Vaadin提供了丰富的组件。

Vaadin提供的组件

Vaadin提供了丰富的组件,主要分为以下几类:

  • 表单输入类。 包括单选框、复选框、下拉框、日期输入框、邮箱输入框、数字输入框、密码输入框、文本框以及文件上传框等
  • 可视化与交互组件,包括:按钮、图标、链接、菜单、对话框、表格、树形表格、进度条以及标签页等
  • 布局类。包括:应用布局、表单布局、登录框等。
  • 高级组件(需要收费),包括:图表、高级表格、富文本编辑器以及类Excel的编辑组件。
    以上组件的效果和演示可以在 https://vaadin.com/components查看。

Vaadin 开发概述

开发之前,首先要找一个好用的开发工具,作为Java的开发, Vaadin支持Eclipse IDE、IntelliJ IDEA和NetBeans IDE集成开发环境,推荐使用Eclipse 或IntelliJ IDEA,Vaadin同时提供了相关的插件加速开发。
类似Spring Boot,Vaadin提供了在线产生项目框架的工具,地址是:https://vaadin.com/start/v14
产生项目框架的页面如下:

从上图可以看出, 这里使用Maven管理依赖。Vaadin支持不同的技术栈,比如一般的Servlet、Java EE以及Spring Boot。综合来看,初始化Vaadin的方式有:

技术栈/初始方式 在线工具 Eclipse插件 使用Vaadin Maven工程骨架
普通的Sevlet项目 V V V
Java EE V V V
Spring Boot V V V

创建Vaadin项目

这里使用Vaadin在线工具创建普通的Servlet项目,使用Eclipse进行开发。这里使用的开发环境如下:

  • JDK版本: 1.8
  • Eclipse版本:2019-06
  • Node.js:v12.16.1

具体步骤包括:

  1. 创建空的Vaadin项目。
    进入在线生成网页,选择技术栈,输入项目包名和项目名之后,点击“Download”

  2. 解压项目文件
    下载的文件是一个压缩文件,这里的名字是my-vaadin.zip。将该压缩文件解压到Eclipse的工作区目录中。

  3. 导入项目到Eclipse
    File–》Import 选择Maven/Existing Maven Projects.

    在弹出的对话框中,选择项目路径后点“Finish”

  4. 编译、单元测试和部署项目
    右键单击项目后, 使用Maven install 命令编译、单元测试和部署项目(将编译后的项目放到本地库)。初次执行会花费较长时间,因为需要从远端库下载Vaavin相关的依赖包。如果速度慢,可以在Mavan中设置使用阿里的镜像。

    如果Maven执行出现Perhaps you are running on a JRE rather than a JDK,则添加JDK作为运行时环境。

    如果运行正确之后,在Eclipse中还是报找不到包的错误,则运行eclipse:eclipse命令,如下图所示:

  5. 运行项目
    使用Maven的jetty:run命令,在jetty服务器中运行项目。(当然也可以使用Tomcat)。

    初次运行同样会耗费较长时间,jetty:run命令会首先使用npm下载前端需要的包,再使用Webpack打包。如果控制台迟迟没完成,可以到项目目录下手动执行 npm install之后再重新运行jetty:run

Jetty启动成功的控制台输出如下:

  1. 运行项目
    在浏览器输入 http://localhost:8080/, 执行成功的页面效果如下:

开发参考

Vaadin的源码控管在GitHub,地址是:
https://github.com/vaadin

在线文档地址:
https://vaadin.com/docs/index.html

Vaadin介绍与开发练习之一(总体介绍与创建项目)相关推荐

  1. 基础实验篇 | RflySim底层飞行控制算法开发系列课程总体介绍

    本讲主要介绍多旋翼的特点及选用多旋翼作为实验平台的原因.对于无人系统教育的一些新需求.RflySim平台对于飞控的底层控制算法的开发优势.本期平台课程的设置.以及如何开发自驾仪系统. 相较于固定翼和直 ...

  2. 【Django】开发日报_3_Day:员工管理系统-创建项目

    目录 0.创建新的Django项目 1.创建app 2.注册app 3.设计表结构 4.在MySQL中生成表 5.静态文件管理 6.部门管理 6.1 部门列表 0.创建新的Django项目 step1 ...

  3. 【Django】开发日报_4_Day:手机号码管理系统-创建项目并实现基本功能

    目录 0.新建Django项目 (1)修改setting.py (2)删除根目录下的templates (3)创建App (4)注册App (5)创建App->templates (6)引入st ...

  4. uni-app卖座电影多端开发纪实(一):创建项目

    @关于uni-app 今日之C端主要都是跑在手机而非PC上了,其形态也以小程序.App.手机H5页面为主了: 大前端之C端 作品拿粗给人看,也十之八九要掏手机了: 好在我们有 宇宙制霸人间值得流芳千古 ...

  5. SRPG游戏开发(三)第二章 创建项目

    返回目录 第二章 创建项目 本章开始我们来创建我们的项目,导入用到的素材. 一 创建项目 打开Unity3D,点击New按钮.这时我们看到创建项目的设置界面. 图 2 - 1创建项目 Project ...

  6. 从零开始用Unity开发《坦克世界》1.创建项目,导入素材

    哈喽,大家好,我是飞麦菌. 这一系列的文章将记录我自己使用Unity开发网游<坦克世界>(对,白毛子做的那个)的全过程,会重点详细记录我自己遇到代码上的困难.我想把这个记录做得对新手极度友 ...

  7. Android电子书阅读器开发笔记(1):创建电子书阅读器项目

    项目开发工具是Android Studio. 创建项目 选择菜单命令:File->New->New Project,填入项目信息. (2)设置项目运行的设备和最低Android SDK版本 ...

  8. Vaadin介绍与开发练习之二(创建第一个Vaadin类)

    文章目录 默认项目目录结构 开发实例 本篇承接上一篇: Vaadin介绍与开发练习之一 在上一篇中通过Vaadin在线工具产生了一个普通的Servlet项目:my-vaadin,之后将该项目导入Ecl ...

  9. ABP开发框架前后端开发系列——框架的总体介绍

    ABP开发框架前后端开发系列--框架的总体介绍 ABP是ASP.NET Boilerplate的简称,ABP是一个开源且文档友好的应用程序框架. ABP不仅仅是一个框架,它还提供了一个最徍实践的基于领 ...

最新文章

  1. Adobe Premiere Pro CC 2015.0 已停止工作【解决方案】
  2. Vmware提示:host usb device connections disabled-(vmware 主机已禁用 usb 设备连接)
  3. 回调函数 线程_从0实现基于Linux socket聊天室-多线程服务器一个很隐晦的错误-2...
  4. java汉字偏旁拆分,常见部首的拆分
  5. RBF(径向基)神经网络
  6. 嵌入式系统中断实验c语言,中断的实验现象
  7. 前端每日实战:123# 视频演示如何用纯 CSS 创作一架双冀飞机
  8. Qt文档阅读笔记-QCustom3DLabel使用及Q3DSurface基本信号
  9. udhcpc 后台运行的方法
  10. Kalman滤波器(1960年论文原文翻译)
  11. MFC隐藏窗口及图标
  12. Qt界面制作简单教程,调用python代码
  13. 使用opencv在视频中插入文字、图片;生成特定文字视频
  14. tkinter学习04
  15. PHP调用芝麻商家平台(获取芝麻分)
  16. NanoMsg框架|Android的各模式通讯封装(不另编译动态库附DEMO地址)
  17. [免费]CAD批量清理与版本转换工具——无需打开图纸清理及转换版本
  18. 知乎万赞:什么样的程序员在35岁以后依然被公司抢着要?打破程序员“中年危机”
  19. 74HC238引脚定义 使用方法
  20. android java开发

热门文章

  1. 请不要在朋友圈晒你的火车票,用 Python 能够算出身份证号码!「文末彩蛋」...
  2. 微软发布 Entity Framework EF Core 8 或 EF8
  3. 进程理发师问题linux,理发师问题(linux下实现)问题
  4. 树莓派HDMI视频端口参数英文档案
  5. M - 相似三角形_Java
  6. HTML 统一资源定位器
  7. ip:10.10.10.0/24是什么意思?
  8. 火猴之烟花效果展示(firemonkey)
  9. xbox无法登陆解决方法
  10. 使用CASIO fx-82ES的同学看过来!关于计算器升级的分享