# spring-boot-web **Repository Path**: yezzz/spring-boot-web ## Basic Information - **Project Name**: spring-boot-web - **Description**: 年关将至 摸鱼碰上有朋友需求 就整理一个spring boot基础框架以及对应后续学习思路吧 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-01-05 - **Last Updated**: 2023-03-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # spring-boot-web #### 介绍 这是一个基于spring boot开发的web项目 摸鱼期间完成 仅通过spring boot + mybatis 完成了登录注册相关功能,包括jwt鉴权 可以直接在本项目内直接填写业务,作为一个方便自己与方便他人的框架基础整合吧 也可以提供给Java初学者一个基础参考。 并且后面会提供升级完善的思路 ## 软件架构 ``` ———java |—————base (基础通用实体类) |—————config (项目配置相关) |—————controller (controller层) |—————dao (dao层 数据访问层) |—————model (实体层) |—————service (service 逻辑层 包含接口) ||||—————impl (实现类 逻辑层的实现类 逻辑层的业务实现) |—————utils (工具类 通用封装工具类) |—————vo (VO 层 承载数据实体类) ———resource |—————mapper (mybatis mapper xml) |—————application.yml (spring boot配置 总配置) |—————application-dev.yml (spring boot配置 开发环境分配置) |—————application-prod.yml (spring boot配置 生产环境分配置) ``` #### 使用说明 项目基于maven构建。需要掌握maven基础知识以及使用方法。 #### 升级思路 首先目前的整合仅仅只能实现最基础的web功能,在此提供一个升级思路。如果你想基于此做一个web项目并且把它做完善的话,提供一个参考 1. 登录部分目前只是简单的jwt验证,没引入身份的概念,也没有过期时间相关。完善可以使用Spring Security或者Shiro等安全认证框架 2. 单点登录,利用redis存储token实现单点登录 3. 针对mysql的优化,随着数据量的增加考虑引入集群部署,考虑方案 (1).主从复制 (2).集群部署 4. 针对redis的优化,redis速度快但是资源珍贵,考虑使用集群部署增加容灾能力,提高速度 考虑使用(1).主从模式 (2).哨兵模式 (3).Redis Cluster 5. 进一步提升服务能力,加入分布式。横向扩展 nginx做基础负载均衡 6. 随着体量增大,简单的分布式已经不能满足需求了。开始引入spring cloud系列框架 拆分服务。远程调用。 7. 进一步进行业务分层处理 包括分离读写,同步es。 8. 引入新的分布式数据库替代mysql例如 tidb polardb 9. 本地缓存 分布式缓存 多级缓存,使用消息中间件提升进行削峰解耦。 10. 部分业务流程异步化,部分业务使用多线程并发处理。 11. 部分业务进行数据预计算,热key缓存等。减小io大小,删除io无用数据 12. 分流限流 13. 锁优化,部分场景活用乐观锁 14. JVM终极优化 15. ................... 优化 道阻且长 道友还得努力