`

使用Vaadin和Spring Roo进行应用敏捷开发

 
阅读更多

参考http://vaadin.com/book/-/page/rapid.html

 

一、要点

使用的快速应用开发工具:

(1)Spring Roo

(2)Vaadin插件 for Eclipse

所开发的应用包括:

(1)使用JPAContainer数据库绑定

(2)国际化

(3)使用Vaadin TestBench进行测试

二、概述

通过开发一个简单应用,来展示开发一个典型的实际应用需要的工作步骤:

(1)使用Roo建立业务数据模型

(2)使用JPA和JAPContainer(一个Vaadin add-on)实现数据绑定

(3)使用Spring Roo的Vaadin插件建立CRUD视图

(4)通过Eclipse的Vaadin插件定制自动生成的视图

(5)使用Vaadin的Calendar add-on

(6)通过登陆进行用户认证与授权

(7)国际化

(8)使用Vaadin的TestBench add-on进行测试

(9)将应用发布到Cloud Foundry

 

其中:Spring Roo是一个java应用的快速开发工具。它使用Spring框架、JPA和Maven生成代码,也支持通过add-ons进行扩展,例如spring roo下的Vaadin插件,该插件可以基于在Roo下定义的数据模型生成用户界面视图,这些视图可以使用Eclipse下的vaadin插件提供的可视化编辑器定制修改。

JPAContainer是一个vaadin的container,用于JPA实现与数据库之间的通讯,把一个JPAContainer与一个Vaadin的Table关联,设置为可编辑模式,马上就会得到一个CRUD组件,在table界面编辑的数据被更新到JPAVContainer中,该组件连接一种JPA实现,如EclipseLink或Hibernate,你在界面中所做的一切立即反映到后端数据库中。

通过开发一个简单应用,来展示一个完整的开发过程。该应用是一个工时报告系统,允许员工报告各个项目已经完成的工作。为了完成认证,需要一个登录界面,在用户登录界面中可以选择所使用的语言。业务任务在主界面中完成,其中使用一个典型的布局和菜单条。

三、设置开发环境

1、需要开发工具

(1)Spring Roo,与STS一起

(2)Eclipse下的Vaadin插件

(3)Spring Roo下的Vaadin插件

(4)Vaadin Calendar日历插件

(5)Vaadin TestBench测试插件

2、建立一个Spring Roo项目

3、安装Spring Roo下的Vaadin插件

插件安装之后并不是只针对这一个项目,一旦安装,所有项目都可以使用。但是,Roo shell只能在项目下进入。

在Roo shell界面中输入以下命令:


roo>pgp trust --keyId 0xBF0451C0

roo> download accept terms of use

roo> addon install bundle --bundleSymbolicName com.vaadin.spring.roo.addon

4、设置Roo的数据层

在Roo下设置基于JPA和数据库的数据模型非常简单,持久化的简单设置如下:

roo> persistencesetup --provider ECLIPSELINK --databaseHYPERSONIC_IN_MEMORY

上述命令设置持久化使用EclipseLink实现和HSQLDB内存数据库。可以使用Ctrl-Space获得可以选择的JpA实现和数据库。

当使用一个实际的数据库时,需要配置数据库链接,在下述文件中:

src/main/resources/META-INF/spring/database.properties

四、建立数据模型

Spring Roo自动创建领域模型。使用简单的命令创建实体类及其属性字段。使用前面设置的项目的持久化,创建实体类的同时也创建领域模型与底层数据库之间的JPA映射。

1、领域模型设计

工时报告系统有三个实体,项目中的员工表示为RapidUser实体,同时也是系统的用户,权限通过admin标志区分。

员工使用系统输入工作实体,表示为WorkEntry类,每个条目有开始和结束日期时间和说明。每个工作条目总是与一个项目关联,项目表示为Project类。一个项目有一个名称和是否结束的标志,该标志决定该项目不再被选择。

2、在Roo下建立数据模型

使用Roo shell建立模型对象。entity命令建立一个新的实体类,使用—class参数指定类名。波折号(~)用于指定项目包名。--testAutomatically选项用于建立实体的集成测试。在Roo shell中,总是可以使用Ctrl-Space获得帮助后自动完成命令。

roo>entity --class ~.domain.RapidUser -–testAutomatically

field命令用于建立实体的属性字段,第一个参数是字段类型,像string、boolean或date。用—fieldName指定字段名称,用—notNull指定字段非空,对于string类型,还可以使用可选的参数:--sizeMin和—sizeMax,用于指定字段的最小最大长度。

roo>fieldstring --fieldName username --notNull --sizeMin 2

前面说明的项目的各个数据模型,使用下述命令创建实体类:

entity --class ~.domain.RapidUser --testAutomatically

field string --fieldName username --notNull --sizeMin 2

field string --fieldName password --notNull --sizeMin 4

field boolean --fieldName admin --primitive

 

entity --class ~.domain.Project --testAutomatically

field string --fieldName name --notNull --sizeMin 2 --sizeMax255

field boolean --fieldName enabled --primitive

 

entity --class ~.domain.WorkEntry --testAutomatically

field string --fieldName comment --sizeMax 255

field reference --fieldName project --type~.domain.Project --notNull

field reference --fieldName employee --type~.domain.RapidUser --notNull

field date --fieldName startTime --type java.util.Date--notNull

field date --fieldName endTime--type java.util.Date –notNull

reference字段类型用于指定该字段引用的其他实体类,使用—type指定具体引用的实体类名。

由于在创建领域对象模型时指定了—testAutomatically参数,Roo自动生成了相关的测试,为了检验领域模型,使用下述命令进行测试:

roo>performtests

五、创建Vaadin应用和CRUD界面

Spring Roo本质上是一个代码生成器。如前所述,在建立领域模型时生成了一大堆JAP实体代码。也可以使用Roo生成围绕领域模型的简单用户界面。

默认情况下,Roo使用JSP页面建立CRUD视图。这里有所不同的是,使用Roo的Vaadin插件生成基于Vaadin的服务器端RIA用户界面。

1、建立应用框架

首先,使用vaadin setup命令建立基本的应用框架,稍后在其中建立用户界面。在Roo shell中输入下述命令:

vaadin setup --applicationPackage ~.web--baseName RapidWorkHours --themeName rapid --useJpaContainer true

该命令建立了开发过程中所有需要的内容:

(1)一个“web”包,所有与vaadin相关的代码放在这里

(2)一个应用类名

(3)一个web.xml文件,用于配置针对servlet容器的vaadin应用

(4)一个外观主题theme

2、生成CRUD视图

下面,生成实际的CRUD界面,在Roo shell中使用如下命令:

vaadin generate all --package ~.web.ui--visuallyComposable true

该命令针对所有的领域模型生成CRUD界面,代码放在web.ui包中。

--visuallyComposabe参数指示Roo的vaadin插件生成可以在eclipse的vaadin插件中的vaadin可视编辑器中修改的代码结构。如果不指定该参数,所生成的代码略有不同,适合于高级vaadin用户手工修改代码。

在添加了新的领域对象后,需要再次使用该命令生成新领域对象的CRUD界面代码。

3、发布到开发服务器

至此,我们已经拥有了一个可以运行的vaadin应用系统。很自然地我们想看看实际的运行效果。

在STS IDE中,选择Run on Server,可以使用任何servlet容器应用服务器。

如果感觉Maven世界比较合适,项目也可以针对测试进行发布,例如:jetty:run。Jetty插件在生成项目时自动按装。

六、在Roo项目中使用Vaadin扩展

复杂的vaadin应用通常需要在vaadin核心的基础上使用某些扩展。在这里,我们需要Calendar和JPAContainer两个Vaadin的扩展插件。

Roo的Vaadin插件支持从vaadin目录中安装vaadin扩展插件,并且编译包括的任何widget。

(1)安装vaadin的Calendar日历扩展插件

(2)编译相关的widget

(3)配置发布装配

Roo的vaadin插件自动按装JPAContainer插件,但是Calendar日历插件需要手工安装。

1、安装Vaadin扩展插件

在Roo shell中:

roo> vaadin addon install --artifactId vaadin-calendar

在键入命令是,使用Ctrl-Space可以获得帮助和自动完成命令,如下图:

2、编译widget

有些vaadin扩展插件包括定制的widget,例如Calendar日历插件,需要编译这些widget。在Roo shell中使用下述命令:

roo>vaadin widgetsetcreate

该命令执行需要相当长的时间,特别是在首次执行时需要下载maven的以来库。大概需要20到60秒的时间。

编译后的widget set放在target/rapid-0.1.0-SNAPSHOT/VAADIN/widgetsets/com.vaadin.rapid.web.RapidWidgetset目录下,并且在web.xml中引用。

如果在以后又增加了vaadin的扩展插件,使用vaadin widgetset update命令。

3、配置发布装配

widget set在target/rapid-0.1.0.BUILD-SNAPSHOT目录下编译,默认没有包括部署路径。

(1)打开项目属性

(2)选择部署装配

(3)点击Add

(4)选择文件夹

(5)选择target/rapid-0.1.0.BUILD-SNAPSHOT目录

(6)点击完成

七、定制用户界面

对于基本应用,Roo生成的实体界面已经很好了。在某些情况下,修改form或者改变table的可见属性来满足最终用户的要求。

1、 修改Roo生成的实体form

在可视化编辑器中修改生成的实体form,例如:WorkEntryForm.java。在文件名上右键打开文件,进入设计视图,修改界面。

2、 在填写工作条目界面中建立日历视图

在这里,我们构建一个基于vaadin Calendar日历插件的WorkEntry实体的非传统界面。以图形化的日历用户界面,最终用户填写工作条目。在一周期间,用户可以得到一个他做了什么的快速概述,它也很容易发现缺少的条目。用户还可以选择和可视化修改日历的时间范围,从而加快了日常工作。

在可视化编辑器中开始绘制界面:

(1)选择file-new-vaadin-composite

(2)填写适当的包名、类名,例如:~web.ui和CalendarView。

(3)进入可视化设计界面

分享到:
评论

相关推荐

    远程debug流程,方便debug

    远程debug流程,方便debug

    基于麻雀生物特性的搜索算法(SSA)的Matlab实现:原理、代码与实战应用,基于圈养麻雀特性的搜索算法(SSA)matlab实现:原理、代码与警觉机制解析,麻雀搜索算法(SSA)的matlab实现

    基于麻雀生物特性的搜索算法(SSA)的Matlab实现:原理、代码与实战应用,基于圈养麻雀特性的搜索算法(SSA)matlab实现:原理、代码与警觉机制解析,麻雀搜索算法(SSA)的matlab实现 原创代码,注释清晰,可直接运行 研究表明,圈养的麻雀存在两种不同类型:发现者和加入者。 发现者在种群中负责寻找食物并为整个麻雀种群提供觅食区域和方向,而加入者则是利用发现者来获取食物。 在生活中我们仔细观察会发现,当群体中有麻雀发现周围有捕食者时,此时群体中一个或多个个体会发出啁啾声,一旦发出这样的声音整个种群就会立即躲避危险,进而飞到其它的安全区域进行觅食。 这样的麻雀被称为警觉者。 麻雀搜索算法就是利用麻雀的这种生物特性进行迭代寻优的优化算法。 本资源包含以下三部分内容: 1.麻雀搜索算法的基本原理(两篇参考文献),非常适合用来学习。 2.麻雀搜索算法的matlab代码,注释详细,结构清晰。 3.五个群智能优化算法常用的测试函数。 ,麻雀搜索算法(SSA); MATLAB实现; 原创代码; 注释清晰; 可直接运行; 生物特性迭代寻优; 发现者与加入者; 警觉者; 参考两篇文献。

    基于java的五子棋游戏设计源码+论文

    基于java的五子棋游戏设计源码+论文

    deepseek-r1使用指南

    deepseek-r1使用指南

    DeepSeek+DeepResearch-让科研像聊天一样简单

    DeepSeek+DeepResearch——让科研像聊天一样简单 (1)DeepSeek如何做数据分析? (2)DeepSeek如何分析文件内容? (3)DeepSeek如何进行数据挖掘? (4)DeepSeek如何进行科学研究? (5)DeepSeek如何写综述? (6)DeepSeek如何进行数据可视化? (7)DeepSeek如何写作润色? (8)DeepSeek如何中英文互译? (9)DeepSeek如何做降重? (10)DeepSeek论文参考文献指令 (11)DeepSeek基础知识。

    基于dlib及opencv的人脸识别.zip

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    基于人工智能的目标检测应用.zip

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行;功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    DSP28335通过SPI与AD7606八路信号采集与通信的实践:实时数值与波形展示在上位机界面上,DSP28335与AD7606 SPI通信:采集八路信号并通过SCI上送至上位机实现数据及波形显示

    DSP28335通过SPI与AD7606八路信号采集与通信的实践:实时数值与波形展示在上位机界面上,DSP28335与AD7606 SPI通信:采集八路信号并通过SCI上送至上位机实现数据及波形显示,Dsp28335利用spi与ad7606通信,采集八路信号,通过sci发送到到上位机显示数值和波形 ,DSP28335; SPI; AD7606; 八路信号采集; SCI; 上位机显示; 数值和波形,DSP28335 SPI通讯 AD7606 八路信号采集 SCI发送上位机显示

    搭建mario机器学习测试系统,进行机器学习。.zip

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    marisa-ruby-0.2.4-4.el7.x64-86.rpm.tar.gz

    1、文件内容:marisa-ruby-0.2.4-4.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/marisa-ruby-0.2.4-4.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊

    基于Tent混沌映射的麻雀搜索算法优化:提高全局搜索能力与初始解质量,基于Tent混沌映射的麻雀搜索算法优化:提高全局搜索能力与初始解质量,基于Tent混沌映射的麻雀搜索算法matlab代码: 针对麻

    基于Tent混沌映射的麻雀搜索算法优化:提高全局搜索能力与初始解质量,基于Tent混沌映射的麻雀搜索算法优化:提高全局搜索能力与初始解质量,基于Tent混沌映射的麻雀搜索算法matlab代码: 针对麻雀搜索算法(SSA)在接近全局最优时,种群多样性减少,易陷入局部最优解等问题,提出了一种混沌麻雀搜索优化算法(CSSA)。 通过改进 Tent 混沌序列初始化种群,提高初始解的质量,增强算法的全局搜索能力; ,基于Tent混沌映射的麻雀搜索算法; CSSA(混沌麻雀搜索优化算法); Tent混沌序列初始化种群; 全局搜索能力。,基于Tent混沌映射的CSSA算法:提高麻雀搜索全局搜索能力

    JavaWeb期刊管理系统_课程设计附课设报告.zip

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    上接战略下接绩效的培训规划.pptx

    上接战略下接绩效的培训规划.pptx

    基于S7-300 PLC和Wincc Flexible触摸屏的温室大棚智能控制解决方案:梯形图程序详解、接线与原理图图谱及组态设计,基于S7-300 PLC与Wincc Flexible触摸屏的温室大

    基于S7-300 PLC和Wincc Flexible触摸屏的温室大棚智能控制解决方案:梯形图程序详解、接线与原理图图谱及组态设计,基于S7-300 PLC与Wincc Flexible触摸屏的温室大棚智能控制解决方案:梯形图程序、接线图与组态画面全解析,No.943 基于S7-300 PLC和Wincc Flexible触摸屏温室大棚控制 带解释的梯形图程序,接线图原理图图纸,io分配,组态画面 ,943; S7-300 PLC; Wincc Flexible触摸屏; 温室大棚控制; 梯形图程序; 接线图原理图; IO分配; 组态画面,S7-300 PLC与Wincc Flexible触摸屏联合打造:No.943温室大棚控制系统的设计与实现

    基于ADMM算法的GAMS程序:发电商竞标策略模型及其应用解析,GAMS程序解析:基于ADMM算法的发电商竞标策略优化模型与代码实现,GAMS程序:ADMM算法-基于ADMM法的发电商竞标策略 本程序

    基于ADMM算法的GAMS程序:发电商竞标策略模型及其应用解析,GAMS程序解析:基于ADMM算法的发电商竞标策略优化模型与代码实现,GAMS程序:ADMM算法-基于ADMM法的发电商竞标策略 本程序主要介绍ADMM算法在GAMS中的编写方式,模型基于发电商竞标策略进行编写,基本包含了文章中的模型,但并非完全复现,可作为参考程序自学使用,也可在程序的基础上进行修改使用。 需要的同学可根据以下图片研究是否为自己需要的程序进行。 也可提供ADMM部分程序。 程序包括两个,分别为解决战略投资问题的广义MILP制定的GAMS代码、基于提出的共识- admm算法解决战略投资问题的GAMS代码 ,GAMS程序; ADMM算法; 发电商竞标策略; 模型编写; 广义MILP; 共识-ADMM算法; 战略投资问题; 程序修改。,GAMS程序:ADMM算法在发电商竞标策略中的应用示例

    springboot整合Quartz实现动态配置定时任务.zip

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    重庆市农村信用合作社 农商行数字银行系统建设方案.ppt

    重庆市农村信用合作社 农商行数字银行系统建设方案.ppt

    三菱FX5U定位模块与昆仑通态触摸屏包装机配置程序集成:五轴控制及双轴插补技术,三菱FX5U定位模块与伺服系统控制:包装机配置清单及功能分配手册,三菱 FX5U定位模块5轴 2轴插补伺服 包括三菱FX

    三菱FX5U定位模块与昆仑通态触摸屏包装机配置程序集成:五轴控制及双轴插补技术,三菱FX5U定位模块与伺服系统控制:包装机配置清单及功能分配手册,三菱 FX5U定位模块5轴 2轴插补伺服 包括三菱FX5U伺服5轴程序2轴插补,昆仑通态触摸屏程序。 包装机程序,有详细配置清单 IO表 功能分配等清单 扩展FX5-16ET-ES-H定位,有定位设置说明 ,三菱FX5U;定位模块;5轴;2轴插补伺服;昆仑通态触摸屏程序;包装机程序;配置清单;IO表;功能分配;扩展FX5-16ET-ES-H定位设置。,三菱FX5U定位模块:5轴伺服控制与2轴插补程序包

    机器学习课程设计——基于AdaBoost的银行用户逾期行为检测.zip

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行;功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    恶性肿瘤骨转移临床诊疗专家共识总论要点解读.pptx

    恶性肿瘤骨转移临床诊疗专家共识总论要点解读.pptx

Global site tag (gtag.js) - Google Analytics