业务导向型技术日志首日记录(业务中使用的技术栈)

每做完一个项目我都会小做总结后端技术栈总结,以下是项目中使用的所有后端技术及其业务应用情况

xx管理系统后端技术栈总结

1. 核心框架与语言

Java

  • 基础使用:面向对象编程语言,平台无关性,支持多线程、异常处理、泛型等特性
  • 业务应用:作为后端开发的主要编程语言,实现业务逻辑、数据处理、API接口等
  • 学习文档Java 官方文档

Spring Boot

  • 基础使用:基于Spring框架的快速开发脚手架,自动配置、起步依赖、嵌入式服务器
  • 业务应用:作为后端应用的核心框架,实现RESTful API、WebSocket服务、定时任务等
  • 学习文档Spring Boot 官方文档

2. 数据持久化

MySQL

  • 基础使用:关系型数据库管理系统,支持SQL查询、事务管理、索引优化
  • 业务应用:存储用户信息、设备数据、碳排放记录等核心业务数据
  • 学习文档MySQL 官方文档

Spring Data JPA

  • 基础使用:Spring框架的JPA实现,基于ORM的数据库访问,提供Repository接口
  • 业务应用:实现数据访问层,简化数据库操作,支持实体映射、查询构建、事务管理
  • 学习文档Spring Data JPA 官方文档

Druid

  • 基础使用:高性能的数据库连接池,支持监控、日志、SQL防火墙等功能
  • 业务应用:管理数据库连接,监控SQL执行情况,防止SQL注入攻击
  • 学习文档Druid 官方文档

Flyway

  • 基础使用:数据库版本控制工具,自动执行数据库迁移脚本
  • 业务应用:管理数据库架构变更,确保环境一致性
  • 学习文档Flyway 官方文档

3. 缓存与消息队列

Redis

  • 基础使用:内存数据结构存储,支持字符串、哈希、列表等数据类型
  • 业务应用:缓存热点数据,存储用户会话信息,实现分布式锁和限流
  • 学习文档Redis 官方文档

Redisson

  • 基础使用:Redis的Java客户端,提供高级数据结构和分布式服务
  • 业务应用:实现分布式锁,管理分布式会话,提供高性能缓存
  • 学习文档Redisson 官方文档

RabbitMQ (AMQP)

  • 基础使用:消息队列中间件,支持异步通信、解耦系统组件
  • 业务应用:处理异步任务,实现系统间解耦和通信
  • 学习文档RabbitMQ 官方文档

4. 认证与授权

Spring Security

  • 基础使用:企业级安全框架,支持认证、授权、攻击防护等功能
  • 业务应用:实现用户认证和授权,保护API接口安全
  • 学习文档Spring Security 官方文档

JWT (JSON Web Token)

  • 基础使用:基于JSON的开放标准,用于在各方之间安全传输信息
  • 业务应用:实现无状态的用户认证,生成和验证访问令牌
  • 学习文档JWT 官方文档

JJWT

  • 基础使用:Java实现的JWT库,简化JWT的创建、解析和验证
  • 业务应用:生成和验证JWT令牌,实现令牌过期和刷新
  • 学习文档JJWT 官方文档

5. API开发与文档

Spring Web

  • 基础使用:Spring框架的Web模块,支持RESTful API开发
  • 业务应用:实现RESTful API接口,处理HTTP请求和响应
  • 学习文档Spring Web 官方文档

Spring Boot Actuator

  • 基础使用:Spring Boot的监控和管理模块,提供健康检查、指标监控等功能
  • 业务应用:监控应用健康状态,收集系统指标
  • 学习文档Spring Boot Actuator 官方文档

Springdoc OpenAPI

  • 基础使用:基于OpenAPI 3.0的API文档生成工具
  • 业务应用:自动生成API文档,提供交互式API测试界面
  • 学习文档Springdoc OpenAPI 官方文档

6. 实时通信

WebSocket

  • 基础使用:全双工通信协议,支持服务器主动向客户端推送消息
  • 业务应用:实现实时数据监控,如设备状态更新、碳排放数据推送
  • 学习文档Spring WebSocket 官方文档

7. 监控与运维

Prometheus

  • 基础使用:开源的监控和告警系统,支持多维度数据采集和查询
  • 业务应用:监控系统性能和资源使用情况,收集业务指标
  • 学习文档Prometheus 官方文档

Docker

  • 基础使用:容器化平台,简化应用的打包和部署
  • 业务应用:容器化后端应用,确保环境一致性
  • 学习文档Docker 官方文档

8. 工具与库

Lombok

  • 基础使用:Java库,通过注解简化代码,自动生成getter、setter等方法
  • 业务应用:简化实体类和工具类的代码,减少样板代码
  • 学习文档Lombok 官方文档

MapStruct

  • 基础使用:Java bean映射工具,基于注解的映射配置
  • 业务应用:实现不同数据模型之间的转换,如实体类到DTO的转换
  • 学习文档MapStruct 官方文档

FastJSON

  • 基础使用:高性能的JSON处理库,支持JSON序列化和反序列化
  • 业务应用:处理JSON数据,如API请求和响应的序列化
  • 学习文档FastJSON 官方文档

9. 项目结构与业务流程

项目结构

复制代码
carbon-manage-platform/
├── carbon-api/              # API层,处理HTTP请求和响应
├── carbon-infrastructure/   # 基础设施层,处理数据访问和外部服务
├── carbon-domain/           # 领域层,定义业务模型和规则
└── carbon-common/           # 公共层,提供共享组件和工具

核心业务流程

  • 用户认证:JWT令牌生成与验证,Spring Security权限控制
  • 设备数据处理:实时数据采集、存储、分析和告警
  • 告警处理:规则配置、触发、通知和记录
  • 报表管理:生成、模板管理、导出和分析

10. 开发与部署

Maven

  • 基础使用:Java项目管理工具,管理依赖、构建、测试、部署等
  • 业务应用:管理项目依赖,构建和打包应用
  • 学习文档Maven 官方文档

CI/CD

  • 基础使用:持续集成和持续部署,自动化构建、测试、部署流程
  • 业务应用:使用GitHub Actions实现自动化构建和部署
  • 学习文档GitHub Actions 官方文档

11. 关键业务模块

设备管理模块

  • 设备信息的增删改查
  • 设备状态监控
  • 设备数据采集和存储
  • 设备故障诊断和告警

XX监测模块

  • 实时数据采集和展示
  • 历史数据查询和分析
  • xxx趋势预测
  • 异常数据检测和告警

告警中心模块

  • 告警规则配置
  • 告警触发和通知
  • 告警历史记录
  • 告警统计和分析

报表管理模块

  • 碳排放报表生成
  • 报表模板管理
  • 报表导出和分享
  • 报表数据分析

12. 完整技术栈清单

技术分类 具体技术 应用场景
核心框架 Spring Boot 应用核心框架
语言 Java 后端开发语言
数据持久化 Spring Data JPA 数据库访问层
数据库 MySQL 关系型数据库
连接池 Druid 数据库连接管理
数据库迁移 Flyway 数据库版本控制
缓存 Redis 高性能缓存
Redis客户端 Redisson 分布式服务
消息队列 RabbitMQ 异步通信
认证授权 Spring Security 安全框架
JWT实现 JJWT 令牌生成与验证
API文档 Springdoc OpenAPI 自动生成API文档
实时通信 WebSocket 实时数据推送
监控 Prometheus 系统监控
容器化 Docker 应用容器化
构建工具 Maven 项目管理
代码简化 Lombok 减少样板代码
对象映射 MapStruct 数据模型转换
JSON处理 FastJSON JSON序列化与反序列化
CI/CD GitHub Actions 自动化部署

包含了所有技术的详细说明、使用原理、学习文档链接以及项目中的具体应用情况。

相关推荐
小画家~2 分钟前
第四十六: channel 高级使用
java·前端·数据库
Li_yizYa15 分钟前
Redis-常见数据类型及应用场景
java·数据库·redis
麦兜*21 分钟前
【springboot】图文详解Spring Boot自动配置原理:为什么@SpringBootApplication是核心?
android·java·spring boot·spring·spring cloud·tomcat
rabbit_pro34 分钟前
Java使用Mybatis-Plus封装动态数据源工具类
java·python·mybatis
期待のcode39 分钟前
Java虚拟机类加载机制
java·开发语言
短剑重铸之日1 小时前
《SpringBoot4.0初识》第四篇:原生镜像
java·原生镜像·springboot4.0
程序员欣宸1 小时前
LangChain4j实战之十二:结构化输出之三,json模式
java·人工智能·ai·json·langchain4j
天若有情6731 小时前
打破思维定式!C++参数设计新范式:让结构体替代传统参数列表
java·开发语言·c++
亲爱的非洲野猪1 小时前
从ReentrantLock到AQS:深入解析Java并发锁的实现哲学
java·开发语言
wheelmouse77881 小时前
如何设置VSCode打开文件Tab页签换行
java·python