运行后端
# 运行后端代码
# 下载代码
GitHub - lyl-xf/sana (opens new window)
下载完成之后进入项目目录可以看到以下结构:
|----sana
|----doc #文档
|----sana-abutment #设备接入模块
|----sana-base #基础功能模块
|----sana-devices #设备管理模块
|----sana-rules #规则管理模块
|----sana-service #主服务模块
|----sana-system #系统管理模块
..... #待归化模块
|----sana-web #前端项目
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
- sana为整个项目的根目录,也是后端的根目录,直接使用后端编辑器打开sana项目即可。
- 其中sana-web为前端项目,需要单独独拷贝出去编译,并启动。
# 初始化数据库:
# 1、初始化mysql数据库
- 连接到mysql数据库,创建数据库sana。
- 运行sql文件:doc/mysql/sana.sql
# 2、初始化TDengine数据库
可以使用TDengineGUI,也可以通过命令行来操作,下面介绍的是命令行的方式:
- 命令行进入taos界面

找到文件:doc/TDengine/TD.sql
使用建表语句(这里存储时长是3650天,可自行修改):
CREATE DATABASE sana PRECISION 'ms' KEEP 3650 DURATION 10 BUFFER 16;
1

- 使用刚刚创建的sana数据库:
use sana;
1
- 创建日志超级表,建表语句如下:
CREATE STABLE sys_log_operate (ts timestamp,
module NCHAR(200),
name NCHAR(100),
req_uri NCHAR(200),
req_method NCHAR(200),
req_params NCHAR(4000),
ip NCHAR(50),
user_agent NCHAR(300),
operate_type INT,
status INT,
real_name NCHAR(50)
) TAGS (user_id BIGINT);
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
- 查看表是否存在

# 配置后端环境
# 1、使用编辑器打开sana项目,配置mavne

配置好之后,请使用maven编译项目,确保项目可以编译通过(先clena,后install)。

# 2、修改本项目的sdk版本信息,确保和后端要求的sdk版本一致

# 修改配置文件
# 1、修改application.yml
文件位置: sana-server/src/main/resources/application.yml
主要关注以下配置:
# Tomcat
server:
port: 8888
servlet:
spring:
# 环境 dev|test|prod
profiles:
active: dev
....
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 1、修改application-dev.yml(上面的配置中,active为:dev)
文件位置: sana-server/src/main/resources/application-dev.yml
主要关注以下配置(将:文件存储minio配置、redis配置、数据库‘mysql’、‘TDengine’配置 更换为自己部署的信息。):
############## Sa-Token 配置 (文档: https://sa-token.cc) ##############
sa-token:
cookie:
secure: false
httpOnly: true
token-name: Authorization # token 名称(同时也是 cookie 名称)
timeout: 2592000 # token 有效期(单位:秒) 默认30天,-1 代表永久有效
active-timeout: -1 # token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结
is-concurrent: true # 是否允许同一账号多地同时登录 (为 true 时允许一起登录, 为 false 时新登录挤掉旧登录)
is-share: false # 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token, 为 false 时每次登录新建一个 token)
token-style: uuid # token 风格(默认可取值:uuid、simple-uuid、random-32、random-64、random-128、tik)
is-log: true # 是否输出操作日志
jwt-secret-key: sanakeyidSDWsdjnusadFaaDWedwfdasefAS # jwt秘钥
ignore-config:
paths:
- /swagger/**
- /swagger-resources/**
- /swagger-ui.html
- /doc.html
- /swagger-ui/**
- /favicon.ico
# 文件存储
storage:
minio:
access-key: Y2j5CZqWkTYjhRsadas
secret-key: ro2TfKWjV07uOTXBqp5PGzzRQNsadasXRY
end-point: http://127.0.0.1:9000
bucket-name: dev
spring:
# 是否开启登录验证码
captchaEnabled: true
# 数据库连接信心
data:
redis:
database: 1
host: 127.0.0.1
port: 6379
password: 123456
timeout: 6000ms # 连接超时时长(毫秒)
lettuce:
pool:
max-active: 20 # 最大活跃连接数
max-idle: 10 # 最大空闲连接
min-idle: 5 # 最小空闲连接
max-wait: 5000ms # 获取连接最大等待时间
time-between-eviction-runs: 30000ms # 空闲连接检查周期
stream:
core-pool-size: 3 #处理逻辑时线程池的核心线程数
max-pool-size: 3 #线程池最大线程数
queue-capacity: 500 # 队列容量,默认:500
batch-size: 40 #批量消费数量(一次最多获取多少条消息)
poll-timeout-seconds: 3 # Stream中没有消息时,等待时间
streams: # 环境运行的时候,请一定要先创建好对应的stream;
- name: sana:stream:topic-ruleo # 设备规则处理stream1
group: group-rule1
- name: sana:stream:topic-rulet # 设备规则处理stream2
group: group-rule2
- name: sana:stream:topic-rulej # 定时规则处理stream
group: group-rulejob
datasource:
dynamic:
hikari: # Hikari 连接池全局配置
connection-timeout: 30000 # 等待连接池分配链接的最大时长(毫秒),超过这个时长还没有可用的连接则发生 SQLException,默认:30 秒
minimum-idle: 2 # 最小空闲连接数
maximum-pool-size: 10 # 最大连接数
idle-timeout: 600000 # 连接超时的最大时长(毫秒),超时则被释放(retired),默认:10 分钟
max-lifetime: 1800000 # 连接的生命时长(毫秒),超时而且没被使用则被释放(retired),默认: 30 分钟
connection-test-query: SELECT 1
primary: mysql
datasource:
mysql:
# MySQL8
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/sana?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
username: root
password: 123456
# TDengine
tdengine:
#原生链接,需要配置客户端
#driver-class-name: com.taosdata.jdbc.TSDBDriver
#url: jdbc:TAOS://127.0.0.1:6041/sana?charset=UTF-8&locale=en_US.UTF-8&timezone=UTC-8
#REST 连接
driver-class-name: com.taosdata.jdbc.rs.RestfulDriver
url: jdbc:TAOS-RS://127.0.0.1:6041/sana?charset=UTF-8&locale=en_US.UTF-8&timezone=UTC-8
username: root
password: admin1234...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# 启动后端程序
找到SanaServerApplication启动文件(sana-server/src/main/java/com/sana/SanaServerApplication)
右键,选择: Run 'SanaServerAppl....mian()',即可启动项目
启动效果:

上次更新: 2025/06/04