# WeSpring-Admin **Repository Path**: shen-pengming/we-spring-admin ## Basic Information - **Project Name**: WeSpring-Admin - **Description**: 自己总结的SpringCloud模块化后端架构 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-18 - **Last Updated**: 2024-12-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: SpringBoot, SpringCloud, MyBatis, MybatisPlus, shardingsphere ## README 1. # WeSpring-Admin #### 介绍 SpringCloud模块化后端架构 #### 软件架构 Spring Boot 作为基础框架: 使用的 Spring Boot 版本为 2.1.5.RELEASE,通过继承 spring-boot-starter-parent 来管理依赖版本。 项目中包含了 spring-boot-starter-web 用于构建 Web 应用,以及 spring-boot-starter-log4j2 作为日志框架,替代了默认的 spring-boot-starter-logging 和 slf4j-log4j12。 模块化设计: 项目被划分为多个子模块:common、gateway、model、utils 和 apis。每个模块都有自己的 pom.xml 文件,但它们共同继承了父项目的配置。 **数据库支持**: 使用 ShardingSphere(版本 4.1.1)来实现数据库分片。 使用 MySQL(版本 5.1.46)作为关系型数据库(默认,可根据需求修改配置文件,以更换数据库)。 使用 MyBatis(版本 3.5.1)和 MyBatis Plus(版本 3.1.1)来作为持久层框架,用于数据的访问和操作。 **工具和库**: Apache Commons Lang(版本 3.5):提供了许多实用的工具类,增强了语言的功能。 Apache Commons IO(版本 2.6):用于处理输入输出操作,提供了一些便捷的方法。 Commons Codec(版本 1.12):用于处理编码和解码操作,比如 Base64。 PageHelper(版本 1.2.3):用于分页查询。 Jsoup(版本 1.10.2):用于解析和操作 HTML。 Fastjson(版本 1.2.58):阿里巴巴的 JSON 库,用于 JSON 数据的序列化和反序列化。 JWT(版本 0.9.1):用于生成和验证 JSON Web Tokens,实现安全的认证。 Lombok(版本 1.18.8):通过注解减少样板代码,简化开发。 Elasticsearch(版本 7.2.0):用于全文搜索和分析。 Jest(版本 6.3.1):用于连接 Elasticsearch。 Curator(版本 4.2.0):一个 ZooKeeper 客户端框架,简化了 ZooKeeper 的使用。 HanLP(portable-1.3.4):一个高效的中文自然语言处理工具包。 FastDFS(版本 1.26.5):一个分布式文件系统,用于存储大文件。 XXL-Job(版本 2.2.0-SNAPSHOT):一个分布式任务调度平台。 JUnit(版本 4.12):用于单元测试。 OpenFeign(版本2.1.5.RELEASE):用于微服务间调用 Spring Cloud 和 Spring Cloud Alibaba: 使用 Spring Cloud(Greenwich.RELEASE)来构建微服务架构。 使用 Spring Cloud Alibaba(版本 2.1.0.RELEASE)来集成阿里巴巴的微服务组件,如 Nacos、Sentinel、Dubbo 等。 监控和管理: 使用 Spring Boot Admin(版本 2.1.6)来监控和管理 Spring Boot 应用程序。 API 文档生成: 使用 Swagger(版本 2.9.2)和 Knife4j(版本 2.0.2)来生成和展示 API 文档,增强 API 的可读性和可维护性。 多环境配置: 通过 Maven 的 Profiles 功能,配置了开发环境(dev)、测试环境(test)和生产环境(prod),每个环境都有自己的属性文件,方便在不同环境下使用不同的配置。 这是一个现代化的微服务架构项目,结合了 Spring Boot 的强大功能和各种开源工具和技术,旨在提供一个高效、可扩展和易于维护的系统。 以上技术栈的版本可能有点老,但目前而言依旧坚挺 (o゜▽゜)o☆求星星~ #### 使用说明 maven所需的settings.xml已经提供,备份后直接替换即可使用 (❁´◡`❁) api模块专门提供 API 接口服务 common模块提供了各种基础服务和工具类,如异常处理、FastDFS 文件存储、API 文档生成等。 gateway模块专门提供网关服务的模块,用于处理和路由请求 model模块constants包存放定义的常量内容,enums包中存放了异常相关的枚举类,dtos包中存放了封装接口返回值的DTO类:PageResponseResult:封装分页查询结果的DTO、PageRequestDto:封装分页查询请求的DTO、ResponseResult:通用结果返回类(可根据需求自行更改与定义) utils模块common包下存放了多个工具类: 1. AppJwtUtil: 用于处理 JSON Web Tokens (JWT),包括生成、验证和解析 JWT。 2. Base64Utils: 提供 Base64 编码和解码的功能。 3. BCrypt: 实现了 BCrypt 密码哈希算法,用于安全地存储密码。 4. BurstUtils: 与流量控制或速率限制有关,例如实现令牌桶算法。 5. Compute: 用于执行各种计算任务的工具类(可根据需求自行更改)。 6. DateUtils: 提供日期和时间相关的操作,如格式化、比较和转换等。 7. DESUtils: 实现了数据加密标准 (DES) 算法,用于数据加密和解密。 8. FileUtils: 提供文件操作相关的方法,如读写文件、创建目录等。 9. IdsUtils: 用于生成唯一标识符(ID),如 UUID 或自定义 ID 生成策略。 10. MD5Utils: 实现了 MD5 哈希算法,用于生成消息摘要或密码加密等。 11. ReflectUtils: 提供反射相关的操作,如获取类信息、实例化对象等。 12. SensitiveWordUtil: 用于敏感词过滤,可能包含敏感词库和过滤逻辑。 13. SimHashUtils: 实现了 SimHash 算法,用于近似字符串匹配或相似度计算。 14. SnowflakeIdWorker: 实现了 Snowflake 算法,用于生成全局唯一的 ID。 15. UrlSignUtils: 提供 URL 签名相关的功能,确保 URL 的安全性。 16. ZipUtils: 提供压缩和解压缩文件的功能,使用 ZIP 格式。 threadlocal包中存放了用于处理线程局部变量的工具类。 Business_Logic_Processing_Module为逻辑实现模块模板,不可直接使用,但pom.xml与相关配置文件均可直接复制使用:自行新建模块后,参考Business_Logic_Processing_Module中结构,将java文件夹下config包中相关配置与resources文件夹下相关配置复制到新建的模块中(记得更改server.port、spring.application.name等必要配置)。feign包用于存放定义的远程调用其他微服务的接口。controller、mapper、service、impl不做赘述。 #### 框架适用 企业级管理后台、电商平台管理系统、内容管理系统、智能推荐系统、数据分析&报表系统 本框架不包含前端哈,因为本人前端学的稀碎,没有Ai活不了的那种T^T