SpringBoot+Redis+Consul:实现学生成绩管理系统 分布式+邮箱功能(完整代码)

SpringBoot+Redis+Consul:实现学生成绩管理系统 分布式+邮箱功能

简介







本文基于SpringBoot2+Redis+Consul(+MyBatisPlus+Thymeleaf+Echarts) 实现一个分布式的学生成绩管理系统。它在上一SpringBoot+MyBatisPlus+Redis+Thymeleaf+Echarts版本基础上吸收分布式架构思想,将项目拆分为多个模块,使整个项目易于扩展和维护。

完整代码见github

任务


相关工作

本项目基于以上项目进行改进。主要内容有:

  • 应用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>

邮箱模块自测:


Session共享

        <!--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版本

おすすめ

転載: blog.csdn.net/qq_36937684/article/details/117802490