天天看點

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

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源碼,源碼位址文章開頭已經給出;下載下傳完後去掉一些沒有必要的檔案:

  1. 清空

    davinci-ui

    檔案夾,該檔案夾存放的是前端打包後的檔案,用于打包整個工程的,開發後端過程中用不上;打包整個Davinci工程的時候會用到這個檔案夾,是以隻清空,不删除
  2. 删除

    docs

    檔案夾,該檔案夾是用于開發使用者說明文檔靜态網站的工程,跟後端工程無關,開發使用者說明文檔的方法可以看筆者的另外一篇文章:Davinci可視化平台 —— Jekyll+Minimal Mistakes的使用者手冊工程本地打包釋出
  3. 删除

    webapp

    檔案夾,該檔案夾是前端部分的開發代碼,開發後端過程中用不上,如何開發前端部分代碼可以看筆者的另外一篇文章:Davinci可視化平台 ——前端部分代碼開發
    Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

二、工程目錄結構

使用者配置在項目根目錄 /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的資料模型

執行指令:

參數說明:

  • -P:mysql資料庫端口
  • -h:mysql資料庫ip位址
  • -u:登陸的msql資料庫的使用者名
  • -p:通過密碼登陸
  • davinci:建立的資料庫的名稱,可自定義
  • D:\Davinci\bin\davinci.sql:davinci.sql檔案在本機的絕對路徑

執行以上指令後,控制台會提示輸入該使用者的密碼,鍵入密碼後等待指令完成即可;指令執行完後,該mysql下會自動建立davinci資料庫

四,項目導入idea

1,打開idea啟動頁

如下:

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

如果已經打開某個項目,關閉目前項目即可:

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

2,導入項目

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

選擇剛剛下載下傳好的代碼(davinci源碼不要放到帶用中文的路徑中)

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包
Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包
Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包
Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

選擇jdk1.8

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

點選Finish

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

3,配置idea的maven環境

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

選擇maven路徑

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

選擇maven的settings.xml檔案路徑

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

選擇好後,maven開始下載下傳相關依賴,慢慢等…導入完成

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

4,platform添加tools.jar

項目有的地方用到了tools.jar包裡面的類,是以要添加這個jar包,添加方法:

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包
Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

選擇

jdk1.8

安裝目錄下

lib

檔案夾下的

tools.jar

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

點選OK确定

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

5,安裝lombok插件

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包
Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包
Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

重新開機idea

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

五,啟動項目

1,複制application.yml

将config目錄下的application.yml.example複制一份,并重命名為

application.yml

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

2,修改application.yml資料庫配置

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包
  • 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可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

如何配置的話,看Davinci源碼的

docs

檔案夾的說明文檔,docs檔案夾是使用者操作說明檔案夾,在文章開頭筆者說這個沒有用,可以删了,如果真的删了再重新解壓下之前下載下傳的zip包吧,參考

davinci/docs/zh/1.1-deployment.md

這個文章:

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

4,修改application.yml截圖配置

截圖配置是用在定時任務上,davinci支援定時的截取某個圖表視圖的頁面,并發送到指定郵箱,截圖功能需要配置外部的工具,是以如果要用這個功能就需要安裝phantomjs截圖工具,如果不用這個功能,這裡可以不配置,首先安裝

phantomjs

,自行百度;然後将

phantomjs.exe

的絕對位址複制到

screenshot.phantomjs_path

這個配置上

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

5,idea添加啟動配置

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包
Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包
Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

自定義名字

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包
Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

啟動類是

server/src/main/java/edp/DavinciServerApplication.java

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

添加環境變量,添加一個環境變量

DAVINCI3_HOME

,值為本項目的絕對路徑

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包
Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包
Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

6,啟動

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

啟動成功

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

六,Swagger

該項目有內建swagger2,swagger-ui的連結為:

http://localhost:8080/swagger-ui.html

Davinci可視化平台 —— 導入idea,利用idea開發後端部分代碼一,代碼擷取二、工程目錄結構三,建立Davinci資料庫模型四,項目導入idea五,啟動項目六,Swagger七,打包

關于如何将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

繼續閱讀