Java大型企业级练手项目——尚医通【视频+文档+代码】

一、项目简介

尚医通是一个网上预约挂号系统,包含后台管理系统和前台用户系统,采用前后端分离开发模式。项目技术应用广泛,涵盖微服务、全栈、集群、分布式、高并发;技术应用场景合理,并非多技术的盲目堆叠;业务场景贴近实际,按照市场需求开发。

项目后端技术栈,采用主流的SpringBoot+SpringCloud微服务架构,广泛使用了目前流行的NoSQL技术,使用Redis缓存数据,使用MongoDB实现高并发读写,整合消息中间件RabbitMQ提高订单的并发量,同时还整合了定时任务,实现就医提醒功能,综合应用了阿里云OSS,短信服务以及微信登录、微信支付,同时增加了微信退款功能。

项目前端技术栈,采用主流前端框架Vue,使用Nuxt和vue-admin-template模板搭建页面环境,采用Element-ui进行页面布局,Npm进行依赖管理,axios进行异步调用,使用ECharts进行图表显示,实现全栈开发。

Java大型企业级练手项目——尚医通【视频+文档+代码】_第1张图片

二、架构图与业务流程图

2.1 架构图

Java大型企业级练手项目——尚医通【视频+文档+代码】_第2张图片

2.2 业务流程图

Java大型企业级练手项目——尚医通【视频+文档+代码】_第3张图片

三、核心技术

3.1 后端技术栈

SpringBoot:简化新Spring应用的初始搭建以及开发过程

SpringCloud:基于Spring Boot实现的云原生应用开发工具,SpringCloud使用的技术:(SpringCloudGateway(网关)、Spring Cloud Alibaba Nacos(服务注册中心)、Spring Cloud Alibaba Sentinel(保护服务的稳定性)、SpringCloud Task()和SpringCloudFeig(远程过程调用)等)

MyBatis-Plus:持久层框架

Redis:内存缓存

RabbitMQ:消息中间件

HTTPClient: Http协议客户端

Swagger2:Api接口文档工具

Nginx:负载均衡

Lombok

Mysql:关系型数据库

MongoDB:面向文档的NoSQL数据库

3.2 前端技术栈

Vue.js:web 界面的渐进式框架

Node.js: JavaScript 运行环境

Axios:Axios 是一个基于 promise 的 HTTP 库

NPM:包管理器

Babel:转码器

Webpack:打包工具

3.3 其他技术

Docker :容器技术

Git:代码管理工具

四、本项目的学习重点

微服务的思想、划分以及实现方式,以及相关技术的用法:

注册中心

客户端调用

微服务网关

熟悉一个完整的业务流程(信息发布 => 信息展示 => 购买 => 下单支付 => 统计管理)

登录认证机制,包括手机号登录、微信扫码登录、OAuth、JWT 等知识

如何运用合适的数据库来解决问题?比如 MySQL 存储关系型数据、Redis 用于缓存、MongoDB 存储一些非关系型的数据(提高访问速度)、RabbitMQ 来实现异步通知和应用解耦。

调用第三方 API 来解决实际问题,比如微信接口、OSS、SMS

学习项目的目录结构及编码规范,比如通用返回对象、全局异常处理器、ContextHolder 等

提升前端开发的经验,比如 Nuxt 框架的使用,了解服务端渲染

五、如何学习微服务项目

对于微服务项目的学习,大家可以遵循以下步骤,也就是从整体到局部的思想:

了解项目业务

把项目运行起来

走完一套完整的业务流程,了解整个系统做了什么事

了解有哪些服务、以及每个服务的作用(做了什么事情)

了解服务之间是如何互相通讯的

根据需求阅读对应服务的源码细节

六、本项目的微服务划分

common 项目公共代码

model 项目数据模型层(只提供接口,便于公用)

service 具体的业务逻辑(微服务)

service_client 服务调用客户端(只提供接口,便于公用)

service_gateway(微服务网关)负责统一校验 / 拦截、跨域、请求转发

公共服务:数据字典管理,导入导出(公共用的枚举值)

医院服务:管理医院,医院信息、排版信息、医院设置信息的增删改查

短信服务(SMS):负责发送短信验证码

用户服务:管理用户、就诊人、用户登录

订单服务:支付订单,订单(预约)管理

存储服务:上传文件(上传用户的图片)

统计服务:分析下单情况

定时任务服务:每天 8 点就医提醒

对应的功能模块图如下:

Java大型企业级练手项目——尚医通【视频+文档+代码】_第4张图片

建议大家在设计系统、学微服务项目时也可以通过画图帮助自己理解

七、学习建议

这个项目 更适合后端同学 。如果你已经学完 SpringBoot、微服务的大致的知识,可以把这个项目作为第一个微服务的练手项目,学习技术的整合运用、接触更多的业务场景。

项目非常真实完整、贴合实际,学完这个项目后,也能搞懂电商平台的业务流程了,可以不用再做类似业务的项目。

整个课程还不错,但没有那么精华,建议大家根据自己的需要去学习课程。比如你要学微信登录或者微信支付,直接去看对应的章节。此外,后端同学看视频时可以跳过前端。

阅读项目代码时,先大致了解业务、把项目跑起来、了解微服务的每个模块做了什么、再去看代码细节

项目的坑略多,可以通过这个项目来自己锻炼自己的 debug 能力(狗头)。可以看我的文档来跑项目、少踩一些坑;还建议多看视频的评论区,可能有同学给出了学习建议和问题的解决方案。

项目用到了微信登录和支付,这块的知识讲得不错,适合入门学习。但由于只有企业账号才能使用这些微信接口,所以学习时主要是了解流程,实际开发中再看文档就好了,不用花时间折腾。

教学类项目,比较追求快速入门,有些功能的实现并不完美(比如下单功能没有考虑并发安全问题,可能导致超卖)。此外,项目几乎没有用到并发编程、设计模式和自定义的 SQL 查询,可以自己思考一下如何运用这些知识技能来优化项目。

八、完整学习视频+笔记+代码+资料

戳一戳跳转视频链接

Java企业级项目【尚硅谷-尚医通】完整178集,Java微服务+分布式+全栈项目,拿来练手就对了(视频+笔记+代码)

如果你正在努力学习提升自己,想要拥有优质的学习资源,需要什么内容可以随时告诉我,我会尽我所能,想你所想。


视频被举报下架了,有需要的小伙伴私信我免费领取吧,视频+源码都送

你可能感兴趣的:(Java项目练习,Java项目,Java,微服务,分布式,项目实战)