Davinci可视化平台 —— 导入idea,利用idea开发后端部分代码
Davinci 是一个 DVaaS(Data Visualization as a Service)平台解决方案,面向业务人员/数据工程师/数据分析师/数据科学家,致力于提供一站式数据可视化解决方案
Davinci源码地址:
https://github.com/edp963/davinci
Davinci源码大概分为三部分:
- 采用React的前端工程
- 采用Spring Boot的后端工程
- 采用Jekyll + Minmal Mistakes的文档工程,用来介绍Davinci的用户操作方法
本篇文章将介绍如何对Davinci后端部分的代码进行开发
笔者环境:
系统:Windows10 64位
Davinci:davinci-0.3.0-beta.8
Idea版本:2016.1.1
java版本:jdk1.8.0_131
maven版本:3.5.0
mysql版本:5.7.28
phantomjs版本:2.1.1(windows)
一,代码获取
下载Davinci源码,源码地址文章开头已经给出;下载完后去掉一些没有必要的文件:
- 清空
davinci-ui
文件夹,该文件夹存放的是前端打包后的文件,用于打包整个工程的,开发后端过程中用不上;打包整个Davinci工程的时候会用到这个文件夹,所以只清空,不删除 - 删除
docs
文件夹,该文件夹是用于开发用户说明文档静态网站的工程,跟后端工程无关,开发用户说明文档的方法可以看笔者的另外一篇文章:Davinci可视化平台 —— Jekyll+Minimal Mistakes的用户手册工程本地打包发布 - 删除
webapp
文件夹,该文件夹是前端部分的开发代码,开发后端过程中用不上,如何开发前端部分代码可以看笔者的另外一篇文章:Davinci可视化平台 ——前端部分代码开发
二、工程目录结构
用户配置在项目根目录 /config/ 下,项目启动脚本和升级补丁脚本在项目根目录 /bin/ 下, 后端代码及核心配置在 server/ 目录下, 日志在项目根目录 /log/ 下
1,脚本
├── bin # 脚本目录├── migration # 较大版本变动迁移脚本目录├── patch # 数据库补丁├── 001_beta5.sql # 已发布补丁(命名规则:“序列_版本”)└── beta.sql # 当期未发布补丁(固定名称)├── build.sh├── davinci.sql # 完整系统数据库脚本(包含所有补丁)├── initdb.bat # 针对 Windows 环境的初始化数据库批处理脚本├── initdb.sh # 针对 Linux、Mac 环境的初始化数据库 Shell 脚本├── phantom.js # 截图脚本(未来版本将不再使用)├── restart-server.sh # 针对 Linux、Mac 环境的重启服务脚本├── run.bat # 针对 Windows 环境的服务启停核心脚本 ├── start.bat # 针对 Windows 环境的服务启动脚本├── start-server.sh # 针对 Linux、Mac 环境的服务启动脚本├── stop.bat # 针对 Windows 环境的服务停止脚本└── stop-server.sh # 针对 Linux、Mac 环境的服务停止脚本
2,用户配置
用户配置
├── config # 用户配置目录├── application.yml.example # 应用配置模板├── datasource_driver.yml.example # 自定义数据源配置模板└── logback.xml # 日志配置
3,server代码
├── server # Server 代码根目录├── src # 源码├── main├── java└── edp├── core # 核心配置及通用代码├── davinci # Davinci 业务代码 ├── DavinciServerApplication # 系统启动类└── SwaggerConfiguration # Swagger 配置类└── resources├── generator├── mybatis # mybatis mapping 目录├── templates # 邮件、Sql 模板目录 ├── application.yml # 系统核心配置文件└── banner.txt└── test # 测试代码目录└── pom.xml # Davinci Server maven 配置文件,继承自项目根目录pom.xml
4,日志
日志目录
├── logs # 日志根目录├── sys # 系统日志目录└── user # 用户日志目录├── opt # 用户操作日志└── sql # 用户Sql日志
三,创建Davinci数据库模型
Davinci的开发者已经将创建数据模型的文件写好,放到了bin目录下,文件名是bin/davinci.sql
,利用该sql可以快速的在mysql中创建运行davinci的数据模型
执行命令:
mysql -P 3306 -h localhost -u root -p davinci< D:\Davinci\bin\davinci.sql
参数说明:
- -P:mysql数据库端口
- -h:mysql数据库ip地址
- -u:登陆的msql数据库的用户名
- -p:通过密码登陆
- davinci:创建的数据库的名称,可自定义
- D:\Davinci\bin\davinci.sql:davinci.sql文件在本机的绝对路径
执行以上命令后,控制台会提示输入该用户的密码,键入密码后等待命令完成即可;命令执行完后,该mysql下会自动创建davinci数据库
四,项目导入idea
1,打开idea启动页
如下:
如果已经打开某个项目,关闭当前项目即可:
2,导入项目
选择刚刚下载好的代码(davinci源码不要放到带用中文的路径中)
选择jdk1.8
点击Finish
3,配置idea的maven环境
选择maven路径
选择maven的settings.xml文件路径
选择好后,maven开始下载相关依赖,慢慢等…导入完成
4,platform添加tools.jar
项目有的地方用到了tools.jar包里面的类,所以要添加这个jar包,添加方法:
选择jdk1.8
安装目录下lib
文件夹下的tools.jar
点击OK确定
5,安装lombok插件
重启idea
五,启动项目
1,复制application.yml
将config目录下的application.yml.example复制一份,并重命名为application.yml
2,修改application.yml数据库配置
- url配置修改:mysql数据库的连接配置,注意将ip、端口和数据库名配置正确,如果要连接的mysql数据库版本5.5.45+、 5.6.26+ 或者 5.7.6+,在连接串最后加上
&useSSL=false
,不然在连接mysql数据库的时候一直会有一个SSL相关的警告 - username:mysql数据库登陆名
- password:mysql数据库登陆密码
3,修改application.yml邮件配置
邮件配置用于注册用户的时候,通过邮件服务给注册邮箱发送注册邮件
如何配置的话,看Davinci源码的docs
文件夹的说明文档,docs文件夹是用户操作说明文件夹,在文章开头笔者说这个没有用,可以删了,如果真的删了再重新解压下之前下载的zip包吧,参考davinci/docs/zh/1.1-deployment.md
这个文章:
4,修改application.yml截图配置
截图配置是用在定时任务上,davinci支持定时的截取某个图表视图的页面,并发送到指定邮箱,截图功能需要配置外部的工具,所以如果要用这个功能就需要安装phantomjs截图工具,如果不用这个功能,这里可以不配置,首先安装phantomjs
,自行百度;然后将phantomjs.exe
的绝对地址复制到screenshot.phantomjs_path
这个配置上
5,idea添加启动配置
自定义名字
启动类是server/src/main/java/edp/DavinciServerApplication.java
添加环境变量,添加一个环境变量DAVINCI3_HOME
,值为本项目的绝对路径
6,启动
启动成功
六,Swagger
该项目有集成swagger2,swagger-ui的链接为:
http://localhost:8080/swagger-ui.html
关于如何将Swagger接口导入到yapi上,可以看笔者的另外一篇文章:Spring Boot 1.5.8集成Swagger2 + YApi —— Swagger接口信息导入YApi
七,打包
1,打完整release包
首先将前端部分代码打包,将打包好的文件复制到davinci-ui
目录下,然后在根目录下运行:
mvn clean package
打好的包在assemby/target
目录下
2,单独打server部分的包
进入server
目录在,在该目录下执行:
mvn clean package
打好的包在server/target
目录下
GitHub
笔者已将修改好的davinci后端部分代码上传到了git
,链接:
https://github.com/huzhen-v5/davinci-server
Davinci可视化平台 —— 导入idea,利用idea开发后端部分代码相关推荐
- PHP_TP5框架开发后端接口(代码编写思路)
这半个月断断续续在学习用PHP的ThinkPHP框架开发后端API.现在总结记录一下开发一个接口需要做好哪些事,以此提高开发效率,并且也有不错的扩展性. 一.流程概要 基本是这么一个流程,略过环境搭建 ...
- 后端php接口,PHP_TP5框架开发后端接口(代码编写思路)
这半个月断断续续在学习用 PHP 的ThinkPHP框架开发后端API.现在总结记录一下开发一个接口需要做好哪些事,以此提高开发效率,并且也有不错的扩展性. 一.流程概要 基本是这么一个流程,略过环境 ...
- 低代码可视化平台为智慧矿山系统开发提速
什么是智慧矿山? 智慧矿山,是指基于现代煤矿智能化理念,将物联网.云计算.大数据.人工智能.自动控制.工业互联网.机器人化装备等与现代矿山开发技术深度融合,形成矿山全面感知.实时互联.分析决策.自主学 ...
- python导入siri_python利用不到一百行代码实现一个小siri
前言 如果想要容易理解核心的特征计算的话建议先去看看我之前的听歌识曲的文章,传送门://www.jb51.net/article/97305.htm 本文主要是实现了一个简单的命令词识别程序,算法核心 ...
- 自开发数据可视化平台
自开发数据可视化平台,目前只是一个简单的Demo版. 可以动态的设置数据源,动态绑定字段, 目前自适应布局逻辑还没想出来,是通过代码写死 在实现过程中遇到的难点和亮点工作 1.Combobox自定义搜 ...
- OBPS开发平台——导入功能整体过程
OBPS开发平台--导入功能导入功能整体过程: 首先我们来理清思路:web目录下有几个文件夹是我们要记住的 1.bin目录------下面大多是扯淡,就是dll就行了 bin 目录是 Web 应用程序 ...
- Web3D编辑器-使用THREE.JS+Vuejs打造大屏可视化快速搭建工具/W3D/BI/WEB3D/可视化平台/编辑平台/大数据可视化工具 -功能持续开发中
WEB-3D编辑器(持续开发中) 目前支持:效果组件联动,物体设置,事件联动.导入导出.引入vuejs模板: 待做:场景设置,特效组件,物体效果设置(烘培贴图, 特效,shader效果等),视角镜头动 ...
- 浅谈Web大数据可视化平台开发流程
随着大数据时代的到来和数据分析技术的进步,物联网.云计算.手机.电脑以及各种传感器,无一不是数据来源或者承载的方式.微信.qq等社交平台的普及,让人们的情绪和喜好预测变成可能.在众多复杂的数据背后找到 ...
- 三维交互可视化平台(智慧海上牧场平台)学习开发Flask+Vue+Echarts+Mysql+websocket 实战(四)
前言 三维交互可视化平台(智慧海上牧场平台)学习开发之Vue(一) 三维交互可视化平台(智慧海上牧场平台)学习开发之Flask+Vue+Mysql(二) 三维交互可视化平台(智慧海上牧场平台)学习开发 ...
最新文章
- Android 探究 LayoutInflater setFactory
- javaSE----eclipse的安装与使用
- 2015年秋季个人阅读计划
- websocket中发生数据丢失_tcp协议;websocket协议;同源策略和跨域
- 50个PHP程序性能优化的方法
- Activiti的使用技巧
- 2017年山东省ACM省赛总结
- linux内核的裁剪和移植实验,实验5 linux内核的裁剪移植.doc
- mysql - GTID主从复制
- iis7 30M突破
- LESS+to+MCSS
- python离线录音转文字软件_有能把录音变成文字的软件么?
- 数据结构与算法分析:实现list【理解 iter++ 和 ++iter 】
- docker onlyoffice7.1.1 word excel ppt在线编辑、在线预览_添加中文字体和中文字号_02
- Vue中computed(计算属性)、methods、watch的区别
- Metropolis Method Condition Derivation
- python opencv 画黑白棋盘
- R语言中导入excel乱码的解决办法
- C++ 函数实参传递 (argument passing)
- 怎么让c语言程序右边对齐,c语言中的对齐方式