最近在整理thingsboard课程,基于最新thingsboard版本3.9.1/4.0,欢迎大家收藏、关注我,提问,在评论区留言,我争取把最新、最准、最好的课程,呈现在各位亦师亦友的csdn广大读者面前。
目录
1. 技术栈
1.1 前端技术栈
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 | 18.2.13 | 核心前端框架,用于构建单页应用(SPA)。 |
Angular Material | 18.2.14 | Angular 的 Material Design 组件库。 | |
Angular Flex Layout | ^15.0.0-beta.42 | Angular 的响应式布局库。 | |
状态管理 | NgRx (Store, Effects, Store DevTools) | 18.1.1 | Angular 的状态管理库,基于 Redux 模式。 |
路由 | Angular Router | 18.2.13 | Angular 的路由管理库。 |
HTTP 请求 | RxJS | ~7.8.0 | 响应式编程库,用于处理异步操作和 HTTP 请求。 |
国际化 | ngx-translate | 15.0.0 | Angular 的国际化库,支持多语言。 |
表单处理 | Angular Forms | 18.2.13 | Angular 的表单处理库,支持模板驱动和响应式表单。 |
动画 | Angular Animations | 18.2.13 | Angular的动画库,支持组件动画。 |
UI组件库 | Angular Material | 18.2.14 | Material Design组件库,提供丰富UI 组件。 |
ngx-flowchart | 2.0.0 | 流程图组件库。 | |
ngx-drag-drop | 18.0.1 | 拖放功能库。 | |
ngx-hm-carousel | ^3.0.0 | 轮播图组件库。 | |
ngx-markdown | 18.1.0 | Markdown渲染库。 | |
ngx-clipboard | 18.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,确保代码质量和构建效率。
1.2 后台技术栈
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协议库,用于网络设备管理。 |
1.3 APP技术栈
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用于自动化代码生成。