最近在整理thingsboard课程,基于最新thingsboard版本3.9.1/4.0,欢迎大家收藏、关注我,提问,在评论区留言,我争取把最新、最准、最好的课程,呈现在各位亦师亦友的csdn广大读者面前。
目录
1. 技术栈
1.1 前端技术栈
1.2 后台技术栈
1.3 APP技术栈
TB 3.9.1版本:
类别 |
技术/依赖项 |
版本 |
说明 |
前端 构建工具 |
Node.js |
v20.11.1 |
JavaScript 运行时环境,用于构建和运行前端应用。 |
Yarn |
v1.22.17 |
包管理工具,用于安装和管理前端依赖项。 |
|
前端框架 |
Angular |
- |
前端框架,用于构建单页应用(SPA)。 |
构建工具 插件 |
Frontend Maven Plugin |
- |
Maven插件,用于集成Node.js和Yarn,支持前端构建和开发。 |
构建命令 |
yarn install |
- |
安装前端依赖项的命令。 |
yarn run build:prod |
- |
生产环境构建命令,用于生成优化后的前端代码。 |
|
yarn start |
- |
开发环境启动命令,用于本地开发和调试。 |
说明:
前端基于Angular框架构建,使用Node.js和Yarn作为开发和构建工具。
Frontend Maven Plugin 用于将前端构建流程集成到Maven构建过程中,支持安装依赖、构建生产环境和启动开发服务器。
前端构建流程包括:
安装依赖项(yarn install)。
生产环境构建(yarn run build:prod)。
开发环境启动(yarn start)。
类别 |
技术/依赖项 |
版本 |
说明 |
前端框架 |
Angular |
^15.2.10 |
核心前端框架,用于构建单页应用(SPA)。 |
Angular Material |
^15.2.9 |
Angular 的 Material Design 组件库。 |
|
Angular Flex Layout |
^15.0.0-beta.42 |
Angular 的响应式布局库。 |
|
状态管理 |
NgRx (Store, Effects, Store DevTools) |
^15.4.0 |
Angular 的状态管理库,基于 Redux 模式。 |
路由 |
Angular Router |
^15.2.10 |
Angular 的路由管理库。 |
HTTP 请求 |
RxJS |
~7.8.0 |
响应式编程库,用于处理异步操作和 HTTP 请求。 |
国际化 |
ngx-translate |
^14.0.0 |
Angular 的国际化库,支持多语言。 |
表单处理 |
Angular Forms |
^15.2.10 |
Angular 的表单处理库,支持模板驱动和响应式表单。 |
动画 |
Angular Animations |
^15.2.10 |
Angular的动画库,支持组件动画。 |
UI组件库 |
Angular Material |
^15.2.9 |
Material Design组件库,提供丰富UI 组件。 |
ngx-flowchart |
2.0.0 |
流程图组件库。 |
|
ngx-drag-drop |
^15.0.1 |
拖放功能库。 |
|
ngx-hm-carousel |
^3.0.0 |
轮播图组件库。 |
|
ngx-markdown |
^15.1.2 |
Markdown渲染库。 |
|
ngx-clipboard |
^15.1.0 |
剪贴板操作库。 |
|
ngx-daterangepicker-material |
^6.0.4 |
日期范围选择器组件库。 |
|
iplab/ngx-color-picker |
^15.0.2 |
颜色选择器组件库。 |
|
mat-datetimepicker |
~11.0.3 |
日期时间选择器组件库。 |
|
angular-gridster2 |
~15.0.4 |
网格布局组件库。 |
|
ngx-sharebuttons |
^12.0.0 |
社交分享按钮组件库。 |
|
图表与 可视化 |
Echarts |
5.5.0-TB |
强大的图表库,支持多种图表类型。 |
Flot |
0.9-work |
轻量级图表库,支持折线图、柱状图等。 |
|
Flot CurvedLines |
master |
Flot的曲线图插件。 |
|
Canvas Gauges |
^2.1.7 |
仪表板图表库。 |
|
地图与 地理空间 |
Leaflet |
1.8.0 |
轻量级地图库。 |
Leaflet Geoman |
2.14.2 |
Leaflet的地图编辑插件。 |
|
Leaflet Polylinedecorator |
1.6.0 |
Leaflet的路径装饰插件。 |
|
Leaflet Providers |
1.13.0 |
Leaflet的地图瓦片提供插件。 |
|
Leaflet MarkerCluster |
1.5.3 |
Leaflet的标记聚类插件。 |
|
Leaflet GridLayer GoogleMutant |
0.14.1 |
Leaflet的Google地图插件。 |
|
富文本 编辑器 |
TinyMCE |
~5.10.7 |
富文本编辑器。 |
tinymce-angular |
^7.0.0 |
TinyMCE的Angular集成库。 |
|
文件上传 |
Flow.js |
^2.14.1 |
文件上传库,支持分块上传。 |
ngx-flow |
~0.6.0 |
Flow.js的Angular集成库。 |
|
日期与 时间处理 |
date-fns |
2.0.0-alpha.27 |
日期处理库。 |
dayjs |
1.11.4 |
轻量级日期处理库。 |
|
moment |
^2.29.4 |
日期处理库。 |
|
moment-timezone |
^0.5.42 |
时区处理库。 |
|
工具库 |
jQuery |
^3.7.1 |
DOM操作和事件处理库。 |
lodash |
- |
实用工具库,提供多种函数式编程工具。 |
|
tinycolor2 |
^1.6.0 |
颜色处理库。 |
|
jszip |
^3.10.1 |
ZIP文件处理库。 |
|
html2canvas |
^1.4.1 |
HTML转Canvas库。 |
|
qrcode |
^1.5.1 |
二维码生成库。 |
|
marked |
^4.0.17 |
Markdown解析库。 |
|
json-schema-defaults |
^0.4.0 |
JSON Schema默认值生成库。 |
|
schema-inspector |
^2.0.2 |
JSON Schema验证库。 |
|
objectpath |
^2.0.0 |
JSON路径解析库。 |
|
tv4 |
^1.3.0 |
JSON Schema验证库。 |
|
图标与字体 |
Material Design Icons (MDI) |
^7.2.96 |
Material Design图标库。 |
Font Awesome |
^4.7.0 |
图标字体库。 |
|
typeface-roboto |
^1.1.13 |
Roboto字体库。 |
|
开发工具 |
TypeScript |
~4.9.5 |
JavaScript的超集,支持静态类型检查。 |
ESLint |
^8.37.0 |
JavaScript/TypeScript代码检查工具。 |
|
Prettier |
^2.8.3 |
代码格式化工具。 |
|
Webpack |
5.77.0 |
模块打包工具。 |
|
Angular CLI |
^15.2.10 |
Angular命令行工具。 |
|
Karma |
~6.3.9 |
测试运行器。 |
|
Jasmine |
~3.10.1 |
测试框架。 |
|
Protractor |
~7.0.0 |
Angular的端到端测试工具。 |
说明:
前端基于Angular框架构建,使用Angular Material提供Material Design风格的UI组件。
依赖NgRx进行状态管理,支持复杂的应用状态管理需求。
使用ECharts和 Flot 等图表库实现数据可视化,支持多种图表类型。
集成Leaflet及其插件实现地图功能,支持地理空间数据展示。
使用TinyMCE提供富文本编辑功能,支持复杂的文本编辑需求。
依赖RxJS处理异步操作,结合ngx-translate实现国际化支持。
开发工具链包括 TypeScript、ESLint、Prettier 和 Webpack,确保代码质量和构建效率。
TB 3.9.1版本:
类别 |
技术/依赖项 |
版本 |
说明 |
核心框架 |
Spring Boot |
3.2.4 |
用于构建微服务和Web应用的核心框架。 |
Spring Data |
3.2.5 |
提供数据访问支持,包括JPA、Redis等。 |
|
Spring Security |
6.2.4 |
提供安全认证和授权功能。 |
|
Spring WebFlux |
6.1.6 |
支持响应式编程的Web框架。 |
|
数据库 |
PostgreSQL |
42.7.3 |
关系型数据库驱动。 |
Cassandra |
4.17.0 |
NoSQL数据库,用于存储时序数据。 |
|
Redis (Jedis) |
5.1.2 |
内存数据库,用于缓存和消息队列。 |
|
消息队列 |
Kafka |
3.7.0 |
分布式消息队列,用于事件流处理。 |
RabbitMQ |
5.21.0 |
消息队列,用于异步通信。 |
|
Google Cloud Pub/Sub |
1.128.1 |
云原生消息队列服务。 |
|
Azure Service Bus |
3.6.7 |
Azure的消息队列服务。 |
|
网络通信 |
Netty |
4.1.109.Final |
高性能网络通信框架,支持MQTT、CoAP等协议。 |
gRPC |
1.63.0 |
高性能RPC框架,用于微服务通信。 |
|
MQTT (Paho Client) |
1.2.5 |
MQTT协议客户端库。 |
|
CoAP (Californium) |
3.11.0 |
CoAP协议实现,用于物联网设备通信。 |
|
序列化与反序列化 |
Jackson |
2.17.2 |
JSON处理库,支持数据绑定和序列化。 |
Protobuf |
3.25.3 |
高效的二进制序列化协议。 |
|
缓存 |
Caffeine |
3.1.8 |
高性能本地缓存库。 |
日志管理 |
SLF4J |
2.0.13 |
日志门面,支持多种日志实现。 |
Logback |
1.5.5 |
日志实现框架,支持灵活的日志配置。 |
|
Log4j |
2.23.1 |
日志框架,支持高性能日志记录。 |
|
工具库 |
Guava |
33.1.0-jre |
Google的工具库, 提供集合、缓存等功能。 |
Apache Commons (Lang3, IO, Codec, CSV, etc.) |
3.14.0, 2.16.1 |
Apache的工具库, 提供常用工具类。 |
|
安全 |
JJWT |
0.12.5 |
JWT(JSON Web Token)生成和验证库。 |
Bouncy Castle |
1.78 |
加密库,支持多种加密算法。 |
|
测试 |
JUnit 5 |
5.10.2 |
单元测试框架。 |
TestNG |
7.10.1 |
测试框架,支持并行测试。 |
|
MockServer |
5.15.0 |
用于模拟HTTP服务的测试工具。 |
|
Testcontainers |
1.19.7 |
提供Docker容器的测试支持。 |
|
前端集成 |
Freemarker |
2.3.32 |
模板引擎,用于生成动态HTML。 |
Springdoc OpenAPI |
2.4.0TB |
用于生成OpenAPI文档的工具。 |
|
地理空间 |
Spatial4j |
0.8 |
地理空间计算库。 |
JTS (Java Topology Suite) |
1.19.0 |
地理空间数据处理库。 |
|
其他 |
Lombok |
1.18.32 |
代码生成工具,简化Java代码。 |
Micrometer |
1.12.5 |
应用监控指标库,支持Prometheus等。 |
|
Oshi |
6.6.0 |
系统信息监控库,支持获取硬件和操作系统信息。 |
|
Twilio |
10.1.3 |
短信和电话服务集成库。 |
|
Firebase Admin |
9.2.0 |
Firebase服务集成库,支持推送通知等。 |
|
JGit |
6.9.0.20240305 |
Git库,支持Git操作。 |
|
SnakeYAML |
2.2 |
YAML解析库,用于配置文件解析。 |
|
AntLR |
3.5.3 |
语法解析器生成工具,用于规则引擎。 |
|
Bucket4j |
8.10.1 |
限流库,支持基于令牌桶的限流算法。 |
|
Hibernate Validator |
8.0.1.Final |
数据验证框架,支持Bean Validation。 |
|
OWASP AntiSamy |
1.7.5 |
防止XSS攻击的HTML过滤库。 |
|
SNMP4J |
3.8.0 |
SNMP协议库,用于网络设备管理。 |
TB App 1.5.0:
类别 |
依赖项 |
版本 |
用途/功能 |
核心框架 |
flutter |
SDK 提供 |
Flutter核心框架,用于构建跨平台移动应用。 |
状态管理 |
flutter_bloc |
^8.1.5 |
BLoC模式的状态管理库,用于管理应用状态。 |
依赖注入 |
get_it |
^7.6.7 |
服务定位器和依赖注入库,用于解耦和管理依赖项。 |
UI组件 |
cupertino_icons |
^1.0.6 |
提供iOS风格的图标。 |
UI组件 |
flutter_speed_dial |
^7.0.0 |
提供浮动操作按钮(FAB)的扩展功能。 |
UI组件 |
auto_size_text |
^3.0.0-nullsafety.0 |
自动调整文本大小的组件。 |
UI组件 |
expandable |
^5.0.1 |
可展开的UI组件。 |
UI组件 |
focused_menu |
^1.0.5 |
提供聚焦菜单的UI组件。 |
路由管理 |
fluro |
^2.0.5 |
强大的路由管理库,用于处理复杂的导航逻辑。 |
SVG支持 |
flutter_svg |
^2.0.9 |
支持SVG图像的渲染。 |
SVG支持 |
jovial_svg |
^1.1.19 |
另一个SVG渲染库。 |
分页加载 |
infinite_scroll_pagination |
^4.0.0 |
支持无限滚动分页加载数据。 |
滚动效果 |
fading_edge_scrollview |
^4.0.0 |
提供边缘渐隐效果的滚动视图。 |
WebView |
flutter_inappwebview |
^6.1.5 |
提供内嵌WebView功能。 |
URL启动 |
url_launcher |
^6.2.1 |
用于启动外部URL或应用。 |
图片选择 |
image_picker |
^1.0.4 |
用于从设备中选择图片。 |
文件类型支持 |
mime |
^1.0.4 |
提供MIME类型支持。 |
日志记录 |
logger |
^2.0.2+1 |
提供日志记录功能。 |
二维码扫描 |
qr_code_scanner |
^1.0.1 |
提供二维码扫描功能。 |
设备信息 |
device_info_plus |
^10.1.0 |
获取设备信息(如设备型号、操作系统等)。 |
地理位置 |
geolocator |
^12.0.0 |
提供地理位置定位功能。 |
图标库 |
material_design_icons_flutter |
^7.0.7296 |
提供Material Design图标。 |
应用信息 |
package_info_plus |
^8.0.0 |
获取应用信息(如版本号、包名等)。 |
JWT支持 |
dart_jsonwebtoken |
^2.12.1 |
提供JSON Web Token (JWT)的生成和验证功能。 |
加密支持 |
crypto |
^3.0.3 |
提供加密算法支持。 |
表单处理 |
flutter_form_builder |
^9.1.1 |
提供强大的表单构建和验证功能。 |
表单验证 |
form_builder_validators |
^10.0.1 |
提供表单验证功能。 |
HTML 渲染 |
flutter_html |
3.0.0-beta.2 |
提供HTML渲染功能。 |
HTML 解析 |
html |
^0.15.4 |
提供HTML解析功能。 |
跨平台 HTML |
universal_html |
^2.2.4 |
提供跨平台的HTML解析和渲染功能。 |
跨平台支持 |
universal_platform |
^1.0.0+1 |
提供跨平台支持的工具库。 |
页面预加载 |
preload_page_view |
^0.2.0 |
提供页面预加载功能。 |
本地化支持 |
flutter_localizations |
SDK 提供 |
提供Flutter应用的本地化支持。 |
Firebase 核心 |
firebase_core |
^3.1.0 |
Firebase核心库,用于初始化 Firebase服务。 |
Firebase 消息推送 |
firebase_messaging |
^15.0.1 |
提供 Firebase 云消息推送功能。 |
本地通知 |
flutter_local_notifications |
^17.1.2 |
提供本地通知功能。 |
应用角标 |
flutter_new_badger |
^1.0.1 |
提供应用角标管理功能。 |
时间格式化 |
timeago |
^3.6.1 |
提供时间格式化功能(如“2 分钟前”)。 |
滑动操作 |
flutter_slidable |
^3.0.1 |
提供滑动操作菜单功能。 |
不可变数据 |
equatable |
^2.0.5 |
提供不可变数据支持,简化对象比较。 |
应用链接 |
app_links |
^6.3.2 |
处理应用深层链接(Deep Links)。 |
集合工具 |
collection |
^1.18.0 |
提供集合操作的工具库。 |
本地存储 |
hive |
^2.2.3 |
提供轻量级本地数据库存储功能。 |
本地存储 |
hive_flutter |
^1.1.0 |
Hive的Flutter集成库。 |
底部弹窗 |
modal_bottom_sheet |
^3.0.0 |
提供底部弹窗功能。 |
事件总线 |
event_bus |
^2.0.0 |
提供事件总线功能,用于组件间通信。 |
字体支持 |
google_fonts |
^6.2.1 |
提供Google字体支持。 |
测试工具 |
flutter_test |
SDK 提供 |
Flutter测试框架。 |
测试工具 |
mocktail |
^1.0.3 |
提供Mock测试功能。 |
测试工具 |
bloc_test |
^9.1.7 |
提供BLoC测试功能。 |
代码质量 |
flutter_lints |
^2.0.0 |
提供代码质量检查和lint规则。 |
Hive代码 生成 |
hive_generator |
^2.0.1 |
生成Hive数据库的代码。 |
代码生成 |
build_runner |
^2.4.9 |
提供代码生成工具。 |
应用图标生成 |
flutter_launcher_icons |
^0.13.1 |
生成应用启动图标。 |
补充总结如下:
核心框架:Flutter作为跨平台开发框架。
状态管理:BLoC模式用于状态管理。
UI组件:丰富的UI组件库支持复杂的界面设计。
本地化:支持多语言和本地化。
网络与数据:支持REST API、WebSocket、JWT认证等。
本地存储:Hive用于轻量级本地数据存储。
推送通知:Firebase云消息推送和本地通知。
测试工具:Mocktail和bloc_test用于单元测试和集成测试。
代码生成:Build Runner和Hive Generator用于自动化代码生成。