SpringBoot+Redis+Consul:实现学生成绩管理系统 分布式+邮箱功能
本文基于SpringBoot2+Redis+Consul(+MyBatisPlus+Thymeleaf+Echarts) 实现一个分布式的学生成绩管理系统。它在上一SpringBoot+MyBatisPlus+Redis+Thymeleaf+Echarts版本基础上吸收分布式架构思想,将项目拆分为多个模块,使整个项目易于扩展和维护。
- MySQL+java: 实现学生成绩管理系统(1.0版本)
- 整合Spring+Mybatis 学生成绩管理系统(完整代码)
- JavaWeb+MySQL实现学生成绩管理系统(1.0版本完整代码)
- SSM 实现学生成绩管理系统(完整代码)
- SpringBoot+MyBatisPlus+Redis+Thymeleaf+Echarts: 实现学生成绩管理系统
本项目基于以上项目进行改进。主要内容有:
- 应用SpringCloud H+SpringBoot2 目前主流的开发框架
- 项目原有部分拆分为公共模块、用户模块和学生模块三个模块部署
- 使用自带图形界面的Consul作为服务注册中心
- 使用Redis实现不同端口的Session共享
- 增加邮箱模块,实现向指定邮箱发送学生成绩统计信息
- 增加未登录或登录过期页面
更新日志(已经在github上更新)
- 暂无
这是一个maven工程,具有4个子模块,都是maven项目。
使用Consul作为注册中心管理不同服务的状态
<!--Consul注册中心-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
<version>3.0.3</version>
</dependency>
使用MySQL实现,和上一版本一致。
USE student_score_ssm;
CREATE TABLE student_score(
id INT PRIMARY KEY AUTO_INCREMENT,
NO VARCHAR(10) UNIQUE NOT NULL,
NAME VARCHAR(20) NOT NULL,
score FLOAT(20),
class_name INT
);
CREATE TABLE USER(
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20) UNIQUE,
PASSWORD VARCHAR(20) NOT NULL,
email VARCHAR(20)
);
使用javax.mail实现发送信息给指定邮箱功能
<!--邮箱-->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.5.0-b01</version>
</dependency>
邮箱模块自测:
<!--redis-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
Redis实现Session共享:实现用户模块的Session共享到其它模块,避免公共模块的拦截器拦截不同模块之间的正常调用. 自测:两个模块分别为8080和8081端口,使用8081可以访问8080端口的session.
参考:https://codeload.github.com/2010yhh/springBoot-demos/zip/refs/heads/master
其他页面见SpringBoot+MyBatisPlus+Redis+Thymeleaf+Echarts版本